Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Esta documentação descreve como usar o mecanismo de depurador e como escrever extensões que serão executadas no WinDbg, KD, CDB e NTSD. Essas extensões do depurador podem ser usadas ao executar depuração de modo de usuário ou modo kernel no Microsoft Windows.
Mecanismo de depurador
O mecanismo de depurador fornece uma interface para examinar e manipular destinos de depuração no modo de usuário e no modo kernel no Microsoft Windows.
O mecanismo do depurador pode adquirir destinos, definir pontos de interrupção, monitorar eventos, consultar símbolos, ler e gravar memória e controlar threads e processos em um destino.
Você pode usar o mecanismo do depurador para escrever tanto bibliotecas de extensão do depurador quanto aplicativos autónomos. Tais aplicativos são aplicativos de mecanismo de depurador. Um aplicativo de mecanismo de depurador que usa a funcionalidade completa do mecanismo de depurador é um depurador de . Por exemplo, WinDbg, CDB, NTSD e KD são depuradores; o mecanismo de depuração fornece o núcleo da funcionalidade deles.
A API do mecanismo de depurador é especificada pelos protótipos no arquivo de cabeçalho dbgeng.h.
Documentação incompleta
Trata-se de um documento preliminar e encontra-se atualmente incompleto.
Para muitos conceitos relacionados aos depuradores e ao mecanismo do depurador que ainda não estão documentados aqui, consulte a seção Técnicas de depuração desta documentação.
Para obter algumas das funcionalidades atualmente não documentadas da API do mecanismo de depurador, use o método Execute para executar comandos individuais do depurador.
Extensões
Você pode criar seus próprios comandos de depuração escrevendo e desenvolvendo uma DLL de extensão. Por exemplo, talvez você queira escrever um comando extension para exibir uma estrutura de dados complexa.
Existem três tipos diferentes de DLLs de extensão do depurador:
DLLs de extensão DbgEng. Eles são baseados nos protótipos no arquivo de cabeçalho dbgeng.h. Cada DLL desse tipo pode exportar comandos de extensão DbgEng. Esses comandos de extensão usam a API do mecanismo de depurador e também podem usar a API WdbgExts.
DLLs de extensão EngExtCpp. Estes são baseados nos protótipos nos arquivos de cabeçalho engextcpp.h e dbgeng.h. Cada DLL desse tipo pode exportar comandos de extensão DbgEng. Esses comandos de extensão usam a API do mecanismo de depurador e a estrutura de extensão EngExtCpp, e também podem usar a API WdbgExts.
DLLs de extensão WdbgExts. Estes são baseados nos protótipos no arquivo de cabeçalho wdbgexts.h. Cada DLL desse tipo exporta um ou mais comandos de extensão WdbgExts. Esses comandos de extensão usam a API WdbgExts exclusivamente.
A API DbgEng pode ser usada para criar extensões ou aplicativos autônomos. A API WdbgExts contém um subconjunto da funcionalidade da API do mecanismo de depurador e pode ser usada apenas por extensões.
Todas as extensões do depurador devem ser compiladas e construídas usando o utilitário Build. O utilitário Build está incluído no Windows Driver Kit (WDK).
Os exemplos de código de extensão são instalados como parte do pacote Ferramentas de Depuração para Windows se efetuar uma instalação personalizada e selecionar o componente SDK e todos os seus subcomponentes. Eles podem ser encontrados no subdiretório sdk\samples do diretório de instalação das Ferramentas de Depuração para Windows.
A maneira mais fácil de escrever novas extensões de depurador é estudar as extensões de exemplo. Cada extensão de exemplo inclui makefile e arquivos de código-fonte para uso com o utilitário Build. Ambos os tipos de extensões são representados nos exemplos.
Escrevendo extensões personalizadas de depurador de análise
Você pode ampliar as capacidades do comando depurador !analyze escrevendo um plug-in de extensão de análise. Ao fornecer um plug-in de extensão de análise, você pode participar da análise de uma verificação de bug ou uma exceção de uma forma específica para seu próprio componente ou aplicativo. Quando você escreve um plug-in de extensão de análise, você também escreve um arquivo de metadados que descreve as situações para as quais você deseja que seu plug-in seja chamado. Quando !analyze é executado, ele localiza, carrega e executa os plug-ins de extensão de análise apropriados. Para obter mais informações, consulte Writing Custom Analysis Debugger Extensions
Personalizando a saída do depurador usando DML
Você pode personalizar a saída do depurador usando DML. Para obter mais informações, consulte Personalizando a saída do depurador usando DML.
Usando JavaScript para estender os recursos do depurador
Use JavaScript para criar scripts que entendam os objetos do depurador e estendam e personalizem os recursos do depurador. Os provedores JavaScript fazem a ponte entre uma linguagem de script e o modelo de objeto interno do depurador. O provedor de scripts do depurador JavaScript permite o uso de JavaScript com o depurador. Para obter mais informações, consulte JavaScript Debugger Scripting.