Como fazer enviar mensagens de rastreamento para um depurador de kernel?
Você pode usar vários métodos para redirecionar mensagens de rastreamento para um depurador no modo kernel. Alguns são discutidos aqui.
Você pode redirecionar mensagens de rastreamento para KD ou windbg, o que estiver anexado. O depurador deve ser anexado por meio de uma porta COM com um cabo de depuração (modem nulo) ou pela porta 1394 ("firewire") com um cabo IEEE 1394. Você não pode redirecionar mensagens de rastreamento para outros depuradores de kernel, como NTSD.
Para exibir mensagens de rastreamento em um depurador, wmitrace.dll e traceprt.dll devem estar no caminho de pesquisa do depurador no computador host. Essas DLLs também estão incluídas nas Ferramentas de Depuração para Windows , para permitir que o depurador localize os arquivos de formato de mensagem de rastreamento (.tmf) para as mensagens de rastreamento, os arquivos TMF devem estar no caminho de pesquisa do depurador no computador host. Para definir o caminho de pesquisa do depurador, use a extensão de depurador especializado !wmitrace.searchpath ou defina o valor da variável de ambiente %TRACE_FORMAT_SEARCH_PATH%.
Para obter mais informações, pesquise !wmitrace em Ferramentas de Depuração para Windows.
Logman
Use o seguinte comando do Logman para redirecionar mensagens de rastreamento para um depurador no modo kernel:
logman start TraceSession -ets -mode KernelFilter -bs 3
O parâmetro -ets inicia uma sessão de rastreamento de eventos que não é controlada pelo serviço de Logs de Desempenho e Alertas. O parâmetro -mode ativa opções avançadas, incluindo a opção KernelFilter .
O parâmetro -bs define o tamanho do buffer da sessão de rastreamento como 3 KB, o tamanho máximo do buffer para o depurador. Se você omitir esse parâmetro, a sessão do depurador não funcionará corretamente.
O Logman está incluído no Windows XP e em versões posteriores do Windows.
Tracelog
Use as seguintes mensagens de rastreamento de redirecionamento do comando Tracelog para um depurador no modo kernel:
tracelog -start MyTrace -guid MyProvider.ctl -rt -kd
O parâmetro -guid especifica o provedor de rastreamento. O parâmetro -rt especifica uma sessão de rastreamento em tempo real. O parâmetro -kd redireciona as mensagens de rastreamento para o depurador de kernel e define o tamanho máximo do buffer como 3 KB, o máximo para o depurador.
Para obter um exemplo, consulte Exemplo 16: exibindo mensagens de rastreamento em um depurador.
Tracelog está localizado no subdiretório tools\tracing\<Platform> do WDK, em <que Platform> é i386, amd64 ou ia64.
TraceView
TraceView tem uma interface gráfica do usuário.
Você pode redirecionar mensagens de rastreamento para um depurador de kernel ao criar uma sessão de rastreamento. Na página Opções de Sessão de Log , clique em Opções Avançadas de Sessão de Log, clique na guia Opções de Parâmetro da Sessão de Log e altere o valor da opção Windbg para TRUE. Não é possível alterar essa opção enquanto a sessão de rastreamento estiver em execução.
TraceView está localizado no subdiretório tools\tracing\<Platform> do WDK, em <que Platform> é i386, amd64 ou ia64.