Partilhar via


Ambientes de depuração

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

  • WinDbg
  • WinDbg (Clássico)
  • Depurador do Kernel (KD)
  • NTKD
  • Depurador de Console (CDB)
  • Depurador simbólico 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, construída com o modelo de dados extensível do depurador como elemento central. O WinDbg está usando o mesmo mecanismo subjacente do WinDbg (Classic), portanto, todos os comandos, extensões e fluxos de trabalho aos quais você está acostumado ainda funcionarão como antes.

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

WinDbg (Clássico)

Microsoft Windows Debugger WinDbg (Classic) é um depurador para Windows capaz de realizar depuração tanto em modo de utilizador quanto em modo kernel. WinDbg fornece depuração para o kernel do Windows, drivers em modo kernel e serviços do sistema, bem como aplicações e drivers em modo de utilizador.

WinDbg utiliza os formatos de símbolos de depuração do Visual Studio para depuração a 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 que é exposta por módulos que foram compilados com arquivos de símbolo COFF (como arquivos .dbg do Windows).

WinDbg pode exibir código-fonte, definir pontos de interrupção, exibir variáveis (incluindo objetos C++), rastreamentos de pilha e memória. A janela de comandos do depurador permite ao utilizador emitir uma ampla variedade de comandos.

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

WinDbg é uma interface gráfica equivalente ao CDB/NTSD e ao 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 suporta depuração multiprocessador.

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

NTKD

Há uma variação do depurador KD chamada NTKD. É idêntico ao KD em todos os aspetos, exceto que gera uma nova janela de texto quando é iniciado, enquanto o KD herda a janela do Prompt de Comando 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 construções do modo de usuário do Windows. O nome Depurador de Console é usado para indicar o fato de que o CDB é classificado como um aplicativo de console; isso não implica que o aplicativo de destino deve ser um aplicativo de console. Na verdade, o CDB é totalmente capaz de depurar aplicativos de console e programas gráficos do Windows.

CDB é extremamente poderoso para depurar um programa que está atualmente em execução ou se interrompeu recentemente (análise em tempo real), e, ainda assim, é simples de configurar. Ele pode ser usado para investigar o comportamento de um aplicativo de trabalho. No caso de uma aplicação com falha, o CDB pode ser usado para obter um rastreamento de pilha ou para analisar os parâmetros problemáticos. Ele funciona bem em uma rede (usando um servidor de acesso remoto), pois é baseado em caracteres.

Com o CDB, você pode exibir e executar o código do programa, definir pontos de interrupção e examinar e alterar valores na memória. CDB pode analisar 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 depuração de seções específicas de código. CDB suporta depuração de vários threads e processos. É extensível e pode ler e escrever memória paginada e não paginada.

Se o aplicativo de destino for 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). Ele é idêntico ao CDB em todos os sentidos, exceto que ele gera uma nova janela de texto quando é iniciado, enquanto o CDB herda a janela do prompt de comando 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 darão os mesmos resultados:

start cdb parameters
ntsd parameters

É possível redirecionar a entrada e saída do NTSD (ou CDB) para permitir o seu controlo a partir de um depurador do kernel (Visual Studio, WinDbg ou KD). Se essa técnica for usada com NTSD, nenhuma janela de console aparecerá. Controlar NTSD a partir do depurador do kernel é, portanto, especialmente útil, uma vez que resulta em um depurador extremamente leve que coloca quase nenhuma carga sobre o computador que contém o aplicativo de destino. Essa combinação pode ser usada para depurar processos do sistema, desligamento e os estágios posteriores da inicialização. Para mais detalhes, consulte Controlar o User-Mode Depurador a partir do Depurador do Kernel.

Ver também

Depuração do Windows

Recursos do WinDbg