Usando comandos do depurador

Isso descreve o uso de comandos do depurador. WinDbg é um depurador que pode ser usado para analisar despejos de memória, depurar código de modo de usuário e modo kernel ao vivo e examinar registros de CPU e memória. Para obter mais informações, consulte Visão geral do WinDbg.

Para instalar o depurador, consulte Instalar o depurador do Windows.

Para começar a usar o WinDbg, consulte Introdução à depuração do Windows.

Janela de comando do depurador do WinDbg

Para WinDbg, "Janela de Comando do Depurador" refere-se à janela rotulada como "Comando" na barra de título. Esta janela contém dois painéis:

  • No painel inferior pequeno, você insere comandos.

  • No painel superior grande, você exibe a saída do comando.

Essa janela está sempre aberta no início de uma sessão de depuração. Você pode reabrir ou alternar para essa janela selecionando Command no menu Exibir, pressionando ALT+1 ou selecionando o botão Command (Alt+1) ( Captura de tela do botão Janela de Comando do Depurador.

Você pode usar as teclas SETA PARA CIMA e SETA PARA BAIXO para percorrer o histórico de comandos. Quando um comando anterior for exibido, você poderá editá-lo e pressionar ENTER para executar o comando anterior (ou a versão editada do comando anterior). O cursor não precisa estar no final da linha para que este procedimento funcione corretamente.

KD ou CDB

Para KD ou CDB, "janela de comando do depurador" refere-se a toda a janela. Você insere comandos no prompt na parte inferior da janela. Se os comandos tiverem alguma saída, a janela exibirá a saída e, em seguida, exibirá o prompt novamente.

Prompt da janela de comando do depurador

Quando você está executando a depuração no modo de usuário, o prompt na janela Comando do Depurador se parece com o exemplo a seguir.

2:005>

No exemplo anterior, 2 é o número do processo atual e 005 é o número do thread atual.

Se você anexar o depurador a mais de um computador, o número do sistema será incluído antes do processo e do número do thread, como no exemplo a seguir.

3:2:005>

Neste exemplo, 3 é o número do sistema atual, 2 é o número do processo atual e 005 é o número do thread atual.

Quando você está executando a depuração no modo kernel em um computador de destino que tem apenas um processador, o prompt se parece com o exemplo a seguir.

kd>

No entanto, se o computador de destino tiver vários processadores, o número do processador atual aparecerá antes do prompt, como no exemplo a seguir.

0: kd>

Se o depurador estiver ocupado processando um comando emitido anteriormente, novos comandos não serão processados temporariamente, embora possam ser adicionados ao buffer de comando. Além disso, você ainda pode usar teclas de controle no KD e no CDB e ainda pode usar comandos de menu e teclas de atalho no WinDbg. Quando KD ou CDB está nesse estado ocupado, nenhum prompt é exibido. Quando o WinDbg estiver nesse estado ocupado, o seguinte indicador aparecerá no lugar do prompt:

*BUSY*

Você pode usar o comando .pcmd (Definir Comando de Prompt) para adicionar texto a esse prompt.

Tipos de comandos

WinDbg, KD e CDB dão suporte a uma variedade de comandos. Alguns comandos são compartilhados entre os depuradores e alguns estão disponíveis apenas em um ou dois dos depuradores.

Alguns comandos estão disponíveis apenas na depuração dinâmica e outros comandos estão disponíveis somente quando você depura um arquivo de despejo.

Alguns comandos estão disponíveis apenas durante a depuração do modo de usuário e outros comandos estão disponíveis apenas durante a depuração do modo kernel.

Alguns comandos estão disponíveis somente quando o destino está sendo executado em determinados processadores. Para obter mais informações sobre todos os comandos e suas restrições, consulte Comandos do depurador.

Editando, repetindo e cancelando comandos

Você pode usar teclas de edição padrão ao inserir um comando:

  • Use as teclas SETA PARA CIMA e SETA PARA BAIXO para localizar os comandos anteriores.

  • Edite o comando atual com as teclas BACKSPACE, DELETE, INSERT e SETA PARA A ESQUERDA e SETA PARA A DIREITA.

  • Pressione a tecla ESC para limpar a linha atual.

Você pode pressionar a tecla TAB para concluir automaticamente sua entrada de texto. Em qualquer um dos depuradores, pressione a tecla TAB depois de inserir pelo menos um caractere para concluir automaticamente um comando. Pressione a tecla TAB repetidamente para percorrer as opções de conclusão de texto e mantenha pressionada a tecla SHIFT e pressione TAB para retroceder. Você também pode usar caracteres curinga no texto e pressionar TAB para expandir para o conjunto completo de opções de conclusão de texto. Por exemplo, se você digitar fo*!ba e pressionar TAB, o depurador se expandirá para o conjunto de todos os símbolos que começam com "ba", em todos os módulos com nomes de módulo que começam com "fo". Como outro exemplo, você pode concluir todos os comandos de extensão que contêm "prcb" digitando !*prcb e pressionando TAB.

Quando você usa a tecla TAB para executar o preenchimento do texto, se o fragmento de texto começar com um ponto (.), o texto será correspondido a um comando de ponto. Se o fragmento de texto começar com um ponto de exclamação (!), o texto corresponderá a um comando de extensão. Caso contrário, o texto será correspondido a um símbolo. Quando você usa a tecla TAB para inserir símbolos, pressionar a tecla TAB completa o código e os símbolos de tipo e os nomes dos módulos. Se nenhum nome de módulo for aparente, os símbolos locais e os nomes de módulo serão concluídos. Se um módulo ou padrão de módulo for fornecido, a conclusão do símbolo concluirá o código e os símbolos de tipo de todas as correspondências.

Você pode selecionar e segurar (ou clicar com o botão direito do mouse) na janela Comando do Depurador para colar automaticamente o conteúdo da área de transferência no comando que você está digitando.

O comprimento máximo do comando é de 4096 caracteres. No entanto, se você estiver controlando o depurador do modo de usuário do depurador de kernel, o comprimento máximo da linha será de 512 caracteres.

Em CDB e KD, pressione a tecla ENTER sozinha para repetir o comando anterior. No WinDbg, você pode habilitar ou desabilitar esse comportamento. Para obter mais informações sobre esse comportamento, consulte ENTER (Repetir Último Comando).

Se o último comando emitido apresentar uma exibição longa e você quiser cortá-lo, use a tecla CTRL+C no CDB ou KD. No WinDbg, use Depurar | Interrompa ou pressione CTRL+BREAK.

Na depuração no modo kernel, você pode cancelar comandos do teclado do computador de destino pressionando CTRL+C.

Você pode usar o comando .cls (Limpar Tela) para limpar todo o texto da janela Comando do Depurador. Este comando limpa todo o histórico de comandos. No WinDbg, você pode limpar o histórico de comandos usando o comando Editar | Limpe o comando Saída do Comando ou selecione Limpar saída do comando no menu de atalho da janela Comando do Depurador.

Sintaxe de expressão

Muitos comandos e comandos de extensão aceitam expressões como seus argumentos. O depurador avalia essas expressões antes de executar o comando. Para obter mais informações sobre expressões, consulte Avaliando expressões.

Aliases

Aliases são macros de texto que você pode usar para evitar a necessidade de redigitar frases complexas. Existem dois tipos de aliases. Para obter mais informações sobre aliases, consulte Usando aliases.

Comandos de repetição automática

Você pode usar os seguintes comandos para repetir uma ação ou executar condicionalmente outros comandos:

Para obter mais informações sobre cada comando, consulte os tópicos de comando individuais.

Controlando a rolagem

Você pode usar a barra de rolagem para exibir seus comandos anteriores e sua saída.

Quando você está usando CDB ou KD, qualquer entrada de teclado rola automaticamente a janela Comando do Depurador de volta para a parte inferior.

No WinDbg, a exibição rola automaticamente para baixo sempre que um comando produz saída ou você pressiona a tecla ENTER. Se você quiser desabilitar essa rolagem automática, selecione Opções no menu Exibir e desmarque a caixa de seleção Rolar automaticamente.

Recursos de texto do WinDbg

No WinDbg, você pode usar vários recursos adicionais para alterar a forma como o texto é exibido na janela Comando do Depurador. Você pode acessar alguns desses recursos na janela WinDbg, alguns no menu de atalho na janela Comando do Depurador e alguns selecionando o ícone de menu apropriado.

  • O comando Quebra automática de linha no menu de atalho ativa e desativa o status de quebra automática de linha. Esse comando afeta toda a janela, não apenas os comandos que você usa depois que esse estado é alterado. Como muitos comandos e extensões produzem exibições formatadas, normalmente não recomendamos a quebra automática de linha.

  • A edição | Adicionar ao comando O comando de menu Saída adiciona um comentário na janela Comando do Depurador. O comando de saída Adicionar ao comando no menu de atalho tem o mesmo efeito.

  • Você pode personalizar as cores usadas para o texto e o plano de fundo da janela Comando do Depurador. Você pode especificar cores diferentes para diferentes tipos de texto. Por exemplo, você pode exibir a saída de registro automático em uma cor, mensagens de erro em outra cor e mensagens DbgPrint em uma terceira cor.

  • Você pode usar todos os recursos comuns às janelas de informações de depuração do WinDbg, como personalizar as fontes e usar comandos de edição especiais.

Depuração remota

Quando você está executando a depuração remota por meio do depurador, o cliente de depuração pode acessar um número limitado de comandos. Para alterar o número de comandos que o cliente pode acessar, use a opção de linha de comando -clines ou a variável de ambiente _NT_DEBUG_HISTORY_SIZE.