Inicie com a depuração do Windows

Este artigo explica como começar a depurar no Windows usando o WinDbg e outras ferramentas de depuração. Você aprende a:

  • Instale o depurador e configure os sistemas host e de destino
  • Configurar seu ambiente de depuração
  • Domine técnicas essenciais de depuração para cenários de modo kernel e modo de usuário

Observação

Se quiser analisar um crash dump em vez disso, veja Extrair informação de um ficheiro dump.

Para começar com a depuração do Windows, complete os seguintes passos.

1. Instalar o Depurador do Windows

Instale o WinDbg para começar a depurar aplicações e drivers do Windows. Para obter etapas de instalação detalhadas, consulte Instalar o WinDbg.

2. Identificar os sistemas hospedeiro e destino

Normalmente, utiliza-se dois sistemas informáticos separados para depuração porque o processo normalmente pausa a execução de instruções no processador. O depurador é executado no sistema host, e o código que se deseja depurar é executado no sistema alvo.

Anfitrião <--------------------------------------------------> Alvo

Captura de tela de um diagrama mostrando uma seta dupla conectando sistemas de depuração de host e destino.

Em algumas situações, pode usar uma máquina virtual como segundo sistema. Por exemplo, um PC virtual pode correr no mesmo PC que o código que precisa de depurar. No entanto, se o seu código se comunicar com hardware de baixo nível, usar um PC virtual pode não ser a melhor abordagem. Para obter mais informações, consulte Configurando a depuração de rede de uma máquina virtual - KDNET.

3. Determine o tipo de depurador: modo kernel ou modo de usuário

De seguida, determine se deve usar a depuração em modo kernel ou modo utilizador.

  • O sistema operacional e os programas privilegiados são executados no modo kernel . O código do modo kernel tem permissão para acessar qualquer parte do sistema, e não é restrito como o código do modo de usuário. O código do modo kernel pode acessar qualquer parte de qualquer outro processo em execução no modo de usuário ou no modo kernel. Grande parte da funcionalidade principal do sistema operacional e muitos drivers de dispositivo de hardware são executados no modo kernel.

  • Aplicativos e subsistemas no computador são executados em modo de usuário . Os processos que são executados no modo de usuário o fazem dentro de seus próprios espaços de endereço virtual. Eles são impedidos de obter acesso direto a muitas partes do sistema, incluindo hardware do sistema, memória que não está alocada para seu uso e outras partes do sistema que podem comprometer a integridade do sistema. Os processos executados no modo de usuário são efetivamente isolados do sistema e de outros processos de modo de usuário, portanto, não podem interferir com esses recursos.

Se o seu objetivo é depurar um driver, determine se o driver é um driver de modo kernel ou um driver de modo de usuário. Modelo de Driver do Windows (WDM) e o Kernel-Mode Driver Framework (KMDF) são ambos drivers em modo kernel. Como o nome sugere, os drivers User-Mode do Driver Framework (UMDF) são drivers em modo utilizador.

Para alguns problemas, pode ser difícil determinar em qual modo o código é executado. Nesse caso, talvez seja necessário escolher um modo e ver quais informações estão disponíveis nesse modo. Alguns problemas requerem o uso do depurador no modo de usuário e no modo kernel.

Dependendo do modo em que você depurar, talvez seja necessário configurar e usar os depuradores de maneiras diferentes. Alguns comandos de depuração operam da mesma forma em ambos os modos, e alguns comandos operam de forma diferente.

Etapas seguintes para depuração em modo kernel

Próximas etapas para depuração em modo de usuário

4. Escolha o ambiente do depurador

O depurador WinDbg funciona bem na maioria das situações, mas há momentos em que pode querer usar outro depurador, como depuradores de consola para automação ou Visual Studio. Para obter mais informações, consulte Ambientes de depuração.

5. Determine como conectar o destino e o host

Normalmente, você conecta sistemas de destino e host usando uma rede Ethernet. Se estiveres a fazer trabalho inicial de ativação, ou não tiveres uma conexão Ethernet num dispositivo, existem outras opções de conexão de rede disponíveis. Para obter mais informações, consulte estes artigos:

6. Escolha entre ferramentas de depuração de 32 bits ou de 64 bits

Se precisa de um depurador de 32 ou 64 bits depende da versão do Windows que corre nos sistemas de destino e anfitrião e se está a depurar código de 32 bits ou 64 bits. Para obter mais informações, consulte Escolhendo ferramentas de depuração de 32 bits ou 64 bits.

7. Configurar símbolos

Para usar todas as funcionalidades avançadas que o WinDbg fornece, você deve carregar os símbolos adequados. Se você não configurar corretamente os símbolos, receberá mensagens indicando que os símbolos não estão disponíveis quando você tenta usar a funcionalidade que depende dos símbolos. Para mais informações, veja Símbolos para depuração do Windows.

8. Configurar o código-fonte

Se o seu objetivo é depurar o teu próprio código-fonte, precisas configurar um caminho para o teu código-fonte. Para obter mais informações, consulte caminho de origem.

9. Torne-se familiarizado com o funcionamento do depurador

A seção Operação do Depurador desta documentação descreve a operação do depurador para diversos fins. Por exemplo, Keeping a Log File in WinDbg descreve como o WinDbg pode gravar um arquivo de log que registra a sessão de depuração.

10. Familiarize-se com as técnicas de depuração

As técnicas de depuração padrão se aplicam à maioria dos cenários de depuração, e os exemplos incluem a definição de pontos de interrupção, a inspeção da pilha de chamadas e a localização de um vazamento de memória. Técnicas de depuração especializadas são aplicadas a determinadas tecnologias ou tipos de código. Exemplos incluem depuração Plug and Play, depuração KMDF e depuração RPC.

Use os comandos de referência do debugger

Usa diferentes comandos de depuração enquanto trabalhas no depurador. Para obter ajuda sobre qualquer comando durante a depuração, utilize o comando .hh seguido pelo nome do comando.

Exemplos:

.hh bp # Get help on breakpoint commands
.hh k # Get help on call stack commands

Para obter uma lista completa dos comandos disponíveis, consulte Referência do depurador.

12. Use extensões de depuração para tecnologias específicas

Use múltiplas extensões de depuração para analisar estruturas de dados específicas do domínio. Para obter mais informações, consulte Extensões especializadas. Para obter informações sobre como carregar extensões do depurador, consulte Carregando DLLs de extensão do depurador.

Esta documentação assume que tens algum conhecimento sobre os componentes internos principais do Windows. Para saber mais sobre Windows internos, incluindo uso de memória, contexto, threads e processos, consulte recursos como Windows Internals de Pavel Yosifovich, Mark E. Russinovich, David A. Solomon e Alex Ionescu.

14. Revise recursos de depuração adicionais

Outros recursos incluem os seguintes livros e vídeos:

  • Inside Windows Debugging: Estratégias Práticas de Depuração e Rastreamento por Tarik Soulami
  • Advanced Windows Debugging por Mario Hewardt e Daniel Pravat
  • Defrag Tools série de vídeos, episódios 13 a 29, tudo sobre WinDbg

Próximos passos

Escolha o modo de depuração para continuar:

Depuração em modo kernel (para drivers e componentes do sistema operacional):

Depuração em modo de usuário (para aplicativos):

Orientação de configuração adicional: