Ambientes de depuração

Há seis ambientes de depuração disponíveis:

  • WinDbg
  • WinDbg (Clássico)
  • Depurador de Kernel (KD)
  • NTKD
  • Depurador de console (CDB)
  • Depurador simbólico de NT (NTSD)

As seções a seguir descrevem os ambientes de depuração.

WinDbg

O WinDbg é a versão mais recente do WinDbg com visuais modernos, janelas mais rápidas e uma experiência de script completa, criada com o modelo de dados do depurador extensível em lugar primordial. O WinDbg usa o mesmo mecanismo subjacente que o WinDbg (Clássico), portanto, todos os comandos, extensões e fluxos de trabalho que você já conhece ainda funcionarão como antes.

Para obter mais informações, consulte Recursos do WinDbg

WinDbg (Clássico)

O Depurador do Microsoft Windows WinDbg (Clássico) é um depurador baseado no Windows que é capaz de depurar no modo de usuário e no modo kernel. O WinDbg fornece depuração para o kernel do Windows, drivers no modo kernel e serviços do sistema, bem como aplicativos e drivers no modo de usuário.

O WinDbg usa os formatos de símbolo de depuração do Visual Studio para a depuração no nível de origem. Ele pode acessar qualquer símbolo ou variável de um módulo que tenha arquivos de símbolo PDB e pode acessar o nome de qualquer função pública exposta por módulos que forem compilados com arquivos de símbolo COFF (como arquivos .dbg do Windows).

O WinDbg pode exibir o código-fonte, definir pontos de interrupção, exibir variáveis (incluindo objetos C++), rastreamentos de pilha e memória. A janela de comando do depurador permite que o usuário emita diversos comandos.

Para a depuração no modo kernel, o WinDbg normalmente requer dois computadores (o computador host e o computador de destino). O WinDbg também oferece suporte a várias opções de depuração remota para destinos de modo de usuário e modo kernel.

WinDbg é uma interface gráfica equivalente a CDB/NTSD e KD/NTKD.

KD

O Microsoft Kernel Debugger (KD) é um programa de console baseado em caracteres que permite uma análise aprofundada da atividade do modo kernel em todos os sistemas operacionais baseados em NT. Você pode usar o KD para depurar componentes e drivers do modo kernel ou para monitorar o comportamento do próprio sistema operacional. O KD também aceita a depuração de multiprocessador.

Normalmente, o KD não é executado no computador que está sendo depurado. Você precisa de dois computadores (o computador host e o computador de destino) para a depuração no modo kernel.

NTKD

Existe uma variação do depurador KD chamada NTKD. Ela é idêntica ao KD em todos os sentidos, exceto pelo fato de que gera uma nova janela de texto quando é iniciado, enquanto o KD herda a janela do prompt de comando a partir da qual foi invocado.

CDB

O Microsoft Console Debugger (CDB) é um programa de console baseado em caracteres que permite a análise de baixo nível da memória e das construtores do modo de usuário do Windows. O nome Console Debugger é usado para indicar o fato de que o CDB é classificado como um aplicativo de console; isso não implica que o aplicativo de destino deva ser um aplicativo de console. Na verdade, o CDB é totalmente capaz de depurar aplicativos de console e programas gráficos do Windows.

O CDB é extremamente poderoso para depurar um programa que esteja em execução ou que tenha apresentado uma falha recentemente (análise ao vivo), ainda que seja simples de configurar. Ele pode ser usado para investigar o comportamento de um aplicativo em funcionamento. No caso de um aplicativo com falha, o CDB pode ser usado para obter um rastreamento de pilha ou para examinar os parâmetros culpados. Ele funciona bem em uma rede (usando um servidor de acesso remoto), pois se baseia em caracteres.

Com o CDB, você pode exibir e executar o código de programa, definir pontos de interrupção e examinar e alterar valores na memória. O CDB pode analisar o código binário desmontando-o e exibindo instruções de montagem. Ele também pode analisar o código-fonte diretamente.

Como o CDB pode acessar locais de memória por meio de endereços ou símbolos globais, você pode consultar dados e instruções por nome em vez de endereço, facilitando a localização e a depuração de seções específicas de código. O CDB suporta a depuração de vários threads e processos. Ele é extensível e pode ler e gravar memória paginada e não paginada.

Se o aplicativo de destino for ele próprio um aplicativo de console, o destino compartilhará a janela do console com o CDB. Para gerar uma janela de console separada para um aplicativo de console de destino, use a opção de linha de comando -2.

NTSD

Há uma variação do depurador CDB chamado Microsoft NT Symbolic Debugger (NTSD). Ela é idêntica ao CDB em todos os sentidos, exceto pelo fato de que gera uma nova janela de texto quando é iniciado, enquanto o CDB herda a janela do prompt de comando a partir da qual foi invocado.

Como o comando start também pode ser usado para gerar uma nova janela do console, as duas construções a seguir terão os mesmos resultados:

start cdb parameters
ntsd parameters

É possível redirecionar a entrada e a saída do NTSD (ou CDB) para que ele possa ser controlado a partir de um depurador de kernel (Visual Studio, WinDbg ou KD). Se essa técnica for usada com o NTSD, nenhuma janela do console será exibida. Controlar o NTSD a partir do depurador de kernel é, portanto, especialmente útil, pois resulta em um depurador extremamente leve que quase não sobrecarrega o computador contendo o aplicativo de destino. Essa combinação pode ser usada para depurar processos do sistema, desligamento e os estágios posteriores da inicialização. Consulte Controlar o depurador de modo de usuário do depurador de kernel para obter mais informações.

Consulte também

Depuração do Windows

Recursos do WinDbg