DTrace é uma estrutura de rastreamento dinâmico que permite que um administrador ou desenvolvedor obtenha uma visão em tempo real de um sistema no modo de usuário ou de kernel. O DTrace possui uma linguagem de programação poderosa e de alto nível estilo C que permite inserir pontos de rastreamento dinamicamente. Usando esses pontos de rastreamento inseridos dinamicamente, você pode filtrar condições ou erros, escrever código para analisar padrões de bloqueio, detectar impasses, etc.
No Windows, o DTrace estende o rastreamento de eventos para Windows (ETW), que é estático e não oferece a capacidade de inserir pontos de rastreamento programaticamente em tempo de execução.
Todas as APIs e funcionalidades usadas pelo dtrace.sys são chamadas documentadas.
A Microsoft implementou um driver especial para Windows 10 que permite executar diversas funções de monitoramento do sistema. O driver será incluído no Windows 10 versão 1903. Além disso, o DTrace atualmente exige que o Windows seja iniciado com um depurador de kernel habilitado.
O código-fonte da ferramenta portada do DTrace está disponível no GitHub. Visite a página DTrace no Windowsno projeto OpenDTrace no GitHub para vê-lo.
Conteúdo esconder Configure o DTrace no Windows 10 Usando o DTraceConfigure o DTrace no Windows 10
Pré-requisitos para usar o recurso
- Insider do Windows 10construir 18342ou mais alto
- Disponível apenas emx64Windows e captura informações de rastreamento apenas para processos de 64 bits O programa Windows Insider éhabilitadoeconfiguradocom conta válida do Windows Insider
- Visite Configurações->Atualização e Segurança->Programa Windows Insider para obter detalhes
Instruções:
- Conjunto de configuração BCD:
- bcdedit /definir dtrace ativado
- Observe que você precisa definir a opção bcdedit novamente, se atualizar para uma nova versão do Insider
- Isso instala os componentes do modo de usuário, drivers e pacotes de recursos adicionais sob demanda necessários para que o DTrace funcione.
- Opcional: atualize oVariável de ambiente PATHincluirC:Arquivos de ProgramasDTrace
- set PATH=%PATH%;'C:Arquivos de ProgramasDTrace'
- Configurarcaminho do símbolo
- Crie um novo diretório para armazenar símbolos em cache 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ímbolos e os armazena em cache no caminho local.
Opcional:Configurar o depurador de kernelconexão com a máquina de destino ( Ligação MSDN). Isso éapenasobrigatório se você deseja rastrear eventos do Kernel usando FBT ou outros provedores. - Observe que você precisará desabilitar o Secureboot e o Bitlocker em C:, (se habilitado), se quiser configurar um depurador de kernel.
Usando o DTrace
- Abra um prompt de comando elevado .
- Execute um dos seguintes comandos:|_+_|
O comandodtrace -lvn syscall:::listará todos os testes e seus parâmetros disponíveis no provedor syscall.
A seguir estão alguns dos provedores disponíveis no Windows e o que eles instrumentam.
- syscall – Chamadas do sistema NTOSfbt (Function Boundary Tracing) – Entrada e retorno da função do kernelpid – Rastreamento de processo no modo de usuário. Semelhante ao FBT no modo kernel, mas também permitindo a instrumentação de funções arbitrárias offsets.etw (Event Tracing for Windows) – permite que testes 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 no S.T.W..
Mais scripts de amostra aplicáveis a cenários do Windows podem ser encontrados neste diretório de amostras.
Fonte: Microsoft