Comece a depuração no Windows
Este artigo aborda como começar a depurar para Windows. Se o seu objetivo for usar o depurador para analisar um despejo de memória, 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
Para obter informações sobre como instalar o WinDbg, 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.
Host <--------------------------------------------------> Target
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 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 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.
Saiba mais sobre como usar o depurador no modo kernel:
- Introdução ao WinDbg (modo kernel)
- Depurar drivers universais: laboratório passo a passo (echo em modo kernel)
- Controladores de depuração: laboratório passo a passo (modo de núcleo Sysvad)
Saiba mais sobre como usar o depurador no 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, os sistemas de destino e host são conectados por 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:
- Configure a depuração do kernel da rede KDNET automaticamente
- Configurar a depuração de rede de uma máquina virtual - KDNET
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 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 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 é 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.
11. Use os comandos de referência do depurador
Você pode usar diferentes comandos de depuração enquanto estiver 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. Loading debugger extension DLLs explica como carregar extensões do depurador.
13. Saiba mais sobre os componentes internos do Windows relacionados
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 de memória, contexto, threads e processos, você pode revisar 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:
- 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
Ver também
- Introdução ao WinDbg (modo kernel)
- Introdução ao WinDbg (modo de usuário)
- Escolha ferramentas de depuração de 32 ou 64 bits
- Ambientes de depuração
- Configurar a depuração (modo kernel e modo de utilizador)
- Depurar drivers universais - laboratório passo a passo (echo - modo kernel)
- Depurar controladores - laboratório passo-a-passo (Sysvad em modo kernel)