Compartilhar via


Introdução à depuração do Windows

Este artigo aborda como começar a depuração para Windows. Se o seu objetivo for usar o depurador para analisar um despejo de falha, consulte Analisar arquivos de despejo de memória usando o WinDbg.

Para começar a usar a depuração do Windows, siga as etapas abaixo.

1. Instalar o Depurador do Windows

Para obter informações sobre como instalar o WinDbg, consulte Instalar o WinDbg.

2. Identificar os sistemas de host e de destino

Dois sistemas de computador separados normalmente são usados para depuração porque a execução de instruções no processador geralmente é pausada durante o processo. O depurador é executado no sistema de host, e o código que você deseja depurar é executado no sistema de destino.

Host <--------------------------------------------------> Destino

Diagrama ilustrando a conexão entre sistemas de host e de destino com uma seta dupla.

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

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

Em seguida, você precisa determinar se deseja usar a depuração no modo kernel ou no modo de usuário.

  • 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 código de modo de usuário. O código do modo kernel pode obter acesso a 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 no modo de usuário . Os processos executados no modo de usuário fazem isso em 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 é alocada para 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, para que não possam interferir nesses recursos.

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

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 exigem o uso do depurador no modo de usuário e no modo kernel.

Dependendo do modo em que você depura, 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.

Saiba mais sobre como usar o depurador no modo kernel:

Saiba mais sobre como usar o depurador no modo de usuário:

4. Escolha seu ambiente de depurador

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

5. Determinar como conectar o destino e o host

Normalmente, os sistemas de destino e host são conectados por uma rede Ethernet. Se você estiver fazendo o trabalho de inicialização antecipada ou não tiver uma conexão Ethernet em um dispositivo, outras opções de conexão de rede estarão disponíveis. Para obter mais informações, consulte estes artigos:

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

Se você precisa de um depurador de 32 bits ou 64 bits depende da versão do Windows que é executada nos sistemas de destino e host e se você está depurando código de 32 bits ou 64 bits. Para obter mais informações, consulte Como escolher entre 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 tiver símbolos configurados corretamente, receberá mensagens indicando que os símbolos não estão disponíveis quando você tentar usar a funcionalidade que depende de símbolos. Para obter mais informações, consulte Símbolos para depuração do Windows.

8. Configurar o código-fonte

Se o seu objetivo for depurar seu próprio código-fonte, será necessário configurar um caminho para o código-fonte. Para obter mais informações, consulte Caminho de origem.

9. Familiarize-se com a operação do depurador

A seção Operação do depurador desta documentação descreve a operação do depurador para várias tarefas. Por exemplo, Manter um arquivo de log no 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

Técnicas de depuração padrão se aplicam à maioria dos cenários de depuração e exemplos incluem a configuraçã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 especializadas de depuração se aplicam a tecnologias ou tipos específicos de código. Os exemplos incluem depuração de Plug and Play, depuração de KMDF e depuração de RPC.

11. Use os comandos de referência do depurador

Você pode usar diferentes comandos de depuração enquanto trabalha no depurador. Use o comando .hh no depurador para exibir informações úteis sobre qualquer comando de depuração. Para obter mais informações sobre comandos disponíveis, consulte Referência do depurador.

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

Há várias extensões de depuração que podem ser usadas para analisar estruturas de dados específicas do domínio. Para obter mais informações, consulte Extensões especializadas. Como carregar DLLs de extensão do depurador explica como carregar extensões do depurador.

Esta documentação pressupõe que você tenha algum conhecimento sobre os principais internos do Windows. Para saber mais sobre os internos do Windows, incluindo uso de memória, contexto, threads e processos, você pode examinar recursos como Windows Internals por Pavel Yosifovich, Mark E. Russinovich, David A. Solomon e Alex Ionescu.

14. Revise recursos adicionais de depuração

Outros recursos incluem os seguintes livros e vídeos:

  • Por dentro da depuração do Windows: Estratégias práticas de depuração e rastreamento por Tarik Soulami
  • Depuração avançada do Windows por Mario Hewardt e Daniel Pravat
  • Defrag Tools série de vídeos, episódios de 13 a 29, tudo sobre WinDbg

Consulte também