Compartilhar via


Depuração no modo kernel 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 Local de Kernel-Mode

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 o WinDbg

Abra o WinDbg como Administrador. No menu Arquivo, escolha Depuração de 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

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

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

  • Comandos de execução, como g (Executar), p (Passo), t (Rastrear), wt (Rastrear e Monitorar Dados), tb (Rastrear até o Próximo Ramal), gh (Executar com Exceção Tratada) e gn (Executar sem Exceção Tratada)

  • 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 o 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 local do kernel

A depuração do kernel local é uma operação muito delicada. Tenha cuidado para não corromper ou invadir 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 do tipo "snapshot" da memória do kernel, sem realmente parar o kernel enquanto esse snapshot é feito. Portanto, o instantâneo pode não representar um único estado momentâneo do computador.

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