Partilhar via


Depuração de Kernel-Mode Local

As Ferramentas de Depuração para Windows suportam depuração de kernel local. Esta é a depuração de 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 Kernel-Mode local de um único computador manualmente.

Iniciando a sessão de depuração

Usando WinDbg

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

Você também pode iniciar uma sessão com WinDbg abrindo uma janela de prompt de comando como administrador e digitando o seguinte comando:

windbg -kl

Usando KD

Abra uma janela de prompt de comando como administrador e digite 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 de depuração do kernel local. Normalmente, você não pode usar qualquer comando que faz com que o computador de destino pare, mesmo 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 (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 depuração do kernel local com o WinDbg, todos os comandos e botões de menu equivalentes também não estarão disponíveis.

Comandos disponíveis

Todos os comandos de entrada e saída de memória estão disponíveis. Você pode ler livremente a partir 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, porque isso pode corromper estruturas de dados e frequentemente faz com que o computador pare de responder (ou seja, falhe).

Dificuldades em executar depuração local do kernel

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

Um dos aspetos mais difíceis da depuração do kernel local é que o estado da máquina está em constante mudança. A memória é paginada de entrada e saída, o processo ativo altera-se constantemente e os contextos de endereço virtual não permanecem constantes. No entanto, sob essas condições, você pode efetivamente analisar coisas que mudam lentamente, como determinados estados do dispositivo.

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

LiveKD

A ferramenta LiveKD simula a depuração do kernel local. Esta ferramenta cria um ficheiro de despejo de captura da memória do kernel, sem interromper de facto o kernel durante a captura. (Portanto, o instantâneo pode não representar exatamente um único estado 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.