DTrace agora está disponível no Windows
A próxima atualização de recursos do Windows 10 (19H1, atualização de abril de 2019, versão 1903) incluirá suporte para DTrace, a popular ferramenta de depuração e diagnóstico de código aberto. Ele foi originalmente construído para Solaris e tornou-se disponível para Linux, FreeBSD, NetBSD e macOS. A Microsoft o portou para o Windows.
Propaganda
O DTrace é uma estrutura de rastreamento dinâmico que permite a um administrador ou desenvolvedor obter uma visão em tempo real de um sistema no modo de usuário ou kernel. O DTrace possui uma linguagem de programação poderosa e de alto nível no estilo C que permite inserir pontos de rastreamento dinamicamente. Usando esses pontos de rastreamento inseridos dinamicamente, você pode filtrar em condições ou erros, escrever código para analisar padrões de bloqueio, detectar deadlocks, etc.
No Windows, o DTrace estende o Rastreamento de Eventos para Windows (ETW), que é estático e não fornece a capacidade de inserir pontos de rastreamento programaticamente no tempo de execução.
Todas as APIs e funcionalidades usadas por dtrace.sys são chamadas documentadas.
A Microsoft implementou um driver especial para o Windows 10 que permite a execução de várias funções de monitoramento do sistema. O driver será incluído no Windows 10 versão 1903. Além disso, o DTrace atualmente requer que o Windows seja iniciado com um depurador de kernel habilitado.
O código-fonte da ferramenta DTrace portada está disponível no GitHub. Visite a página “DTrace no Windows”No projeto OpenDTrace no GitHub para vê-lo.
Configure o DTrace no Windows 10
Pré-requisitos para usar o recurso
- Insider do Windows 10 construir 18342 ou mais alto
- Disponível apenas em x64 Windows e captura informações de rastreamento apenas para processos de 64 bits
-
Programa Windows Insider é ativado e configurado com conta Windows Insider válida
- Visite Configurações-> Atualização e Segurança-> Programa Windows Insider para obter detalhes
Instruções:
-
Conjunto de configuração BCD:
- bcdedit / set dtrace ativado
- Observe, você precisa definir a opção bcdedit novamente, se você atualizar para uma nova compilação do Insider
-
Download e instalar o pacote DTrace de centro de download.
- Isso instala os componentes do modo de usuário, drivers e pacotes adicionais de recursos sob demanda necessários para que o DTrace funcione.
- Opcional: atualize o Variável de ambiente PATH incluir C: \ Arquivos de programas \ DTrace
- definir PATH =% PATH%; "C: \ Arquivos de programas \ DTrace"
- Configurar caminho do símbolo
- Crie um novo diretório para armazenar símbolos localmente. Exemplo: mkdir c: \ symbols
- Definir _NT_SYMBOL_PATH= srv * C: \ símbolos *http://msdl.microsoft.com/download/symbols
- O DTrace baixa automaticamente os símbolos necessários do servidor de símbolo e armazena em cache no caminho local.
-
Opcional:Depurador de Kernel de instalação conexão com a máquina alvo (Link MSDN). Isto é só necessário se você deseja rastrear eventos do Kernel usando FBT ou outros provedores.
- Observe que você precisará desabilitar Secureboot e Bitlocker em C:, (se habilitado), se quiser configurar um depurador de kernel.
- Reinício máquina de destino
Usando DTrace
- Abra um prompt de comando elevado.
- Execute um dos seguintes comandos:
# Syscall resumo por programa por 5 segundos: dtrace -Fn "tick-5sec {exit (0);} syscallentry {@num [pid, execname] = count ();}" # Resuma temporizador definido / cancelado programa por 3 segundos: dtrace -Fn "tick-3sec {exit (0);} syscall:: Nt * Timer *: entry {@ [probefunc, execname, pid] = count ();}" # Dump System Process kernel structure: (requer caminho do símbolo para ser definido) dtrace -n "BEGIN {print (* (struct nt`_EPROCESS *) nt`PsInitialSystemProcess); exit (0);}" # Rastreando caminhos através de NTFS ao executar notepad.exe (requer KD a
O comando dtrace -lvn syscall irá listar todos os probes e seus parâmetros disponíveis no provedor syscall.
A seguir estão alguns dos fornecedores disponíveis no Windows e o que eles utilizam.
- syscall - Chamadas de sistema NTOS
- fbt (Rastreamento de limite de função) - entrada e retornos de função do kernel
- pid - Rastreamento de processo no modo de usuário. Como o FBT no modo kernel, mas também permitindo a instrumentação de deslocamentos de função arbitrários.
-
etw (Rastreamento de evento para Windows) - Permite que os probes sejam definidos para ETW. Este provedor ajuda a aproveitar a instrumentação do sistema operacional existente no DTrace.
- Esta é uma adição que fizemos ao DTrace para permitir que ele exponha e obtenha todas as informações que o Windows já fornece em ETW.
Mais scripts de amostra aplicáveis a cenários do Windows podem ser encontrados neste diretório de amostras.
Fonte: Microsoft