Depuração de Kernel-Mode local

As Ferramentas de Depuração para Windows dão suporte à depuração de kernel local. Isso é depuração no modo kernel em um único computador. Em outras palavras, o depurador é executado no mesmo computador que está sendo depurado.

Configurando a depuração de Kernel-Mode local

Para obter informações sobre como configurar a depuração do modo kernel local, consulte Configurando a depuração de Kernel-Mode local de um único computador manualmente.

Iniciando a sessão de depuração

Usando WinDbg

Abra WinDbg como Administrador. No menu Arquivo , escolha Depuração do Kernel. Na caixa de diálogo Depuração do Kernel, abra a guia Local . Selecione OK.

Você também pode iniciar uma sessão com o WinDbg abrindo uma janela do Prompt de Comando como Administrador e inserindo o seguinte comando:

windbg -kl

Usando KD

Abra uma janela do Prompt de Comando como Administrador e insira o seguinte comando:

kd -kl

Comandos que não estão disponíveis

Nem todos os comandos estão disponíveis em uma sessão local de depuração de kernel. Normalmente, você não pode usar nenhum comando que faça com que o computador de destino pare, mesmo momentaneamente, porque não é possível retomar a operação.

Em particular, você não pode usar os seguintes comandos:

  • Comandos de execução, como g (Go), p (Step), t (Trace), wt (Trace and Watch Data), tb (Trace to Next Branch), gh (Go with Exception Handled)e gn (Go with Exception Not Handled)

  • Comandos de arquivo de desligamento e despejo, como .crash, .dump e .reboot

  • Comandos de ponto de interrupção, como bp, bu, ba, bc, bd, be e bl

  • Registrar comandos de exibição, como r e variações

  • Comandos de rastreamento de pilha, como k e variações

Se você estiver executando a depuração de kernel local com WinDbg, todos os comandos e botões de menu equivalentes também ficarão indisponíveis.

Comandos disponíveis

Todos os comandos de entrada e saída de memória estão disponíveis. Você pode ler livremente da memória do usuário e da memória do kernel. Você também pode gravar na memória. Certifique-se de não gravar na parte errada da memória do kernel, pois ela pode corromper estruturas de dados e frequentemente faz com que o computador pare de responder (ou seja, falha).

Dificuldades na execução da depuração de kernel local

A depuração de kernel local é uma operação muito delicada. Tenha cuidado para não corromper ou travar o sistema.

Um dos aspectos mais difíceis da depuração de kernel local é que o estado do computador está mudando constantemente. A memória é paginada dentro e fora, o processo ativo muda constantemente e os contextos de endereço virtual não permanecem constantes. No entanto, nessas condições, você pode analisar efetivamente coisas que mudam lentamente, como determinados estados de dispositivo.

Os drivers do modo kernel e o sistema operacional Windows frequentemente enviam mensagens para o depurador de kernel usando dbgPrint e funções relacionadas. Essas mensagens não são exibidas automaticamente durante a depuração do kernel local. Você pode exibi-los usando a extensão !dbgprint .

LiveKD

A ferramenta LiveKD simula a depuração de kernel local. Essa ferramenta cria um arquivo de despejo "instantâneo" da memória do kernel, sem realmente parar o kernel enquanto esse instantâneo é feito. (Portanto, o instantâneo pode não mostrar um único estado instantâneo do computador.)

O LiveKD não faz parte do pacote Ferramentas de Depuração para Windows. Você pode baixar o LiveKd do site do Windows Sysinternals.