Partilhar via


Comece a depuração no Windows

Este artigo explica como começar a depurar o Windows usando o WinDbg e outras ferramentas de depuração. Você aprenderá 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 você quiser analisar um despejo de memória em vez disso, consulte Analisar arquivos de despejo de memória usando o WinDbg.

Para começar a depurar o Windows, siga os passos seguintes.

1. Instale o depurador do Windows

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

2. Identificar os sistemas hospedeiro e destino

Dois sistemas de computador separados são normalmente usados para depuração porque a execução de instruções no processador é normalmente pausada durante o processo. 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, é possível usar uma máquina virtual como o segundo sistema. Por exemplo, um PC virtual pode ser executado no mesmo PC que o código que você precisa 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

Em seguida, necessitas determinar se deves usar a depuração do modo kernel ou do 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. Os drivers WDM (Windows Driver Model) e KMDF (Kernel-Mode Driver Framework) são drivers de 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 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. 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 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 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 obter mais informações, consulte 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. Os exemplos incluem depuração Plug and Play, depuração KMDF e depuração RPC.

Use os comandos de referência do debugger

Você pode usar diferentes comandos de depuração enquanto estiver 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

Você pode usar várias 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 pressupõe que você tenha algum conhecimento sobre os principais componentes internos do Windows. Para saber mais sobre os componentes internos do Windows, incluindo o uso da memória, o contexto, os threads e os processos, você pode revisar recursos como o Windows Internals de Pavel Yosifovich, Mark E. Russinovich, David A. Salomão e Alex Ionescu.

14. Revise recursos de depuração adicionais

Outros recursos incluem os seguintes livros e vídeos:

  • Dentro do Depuração do Windows: 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: