Escrevendo código de extensão DbgEng

Os comandos de extensão DbgEng podem incluir qualquer código C++ padrão. Eles também podem incluir as interfaces C++ que aparecem no arquivo de cabeçalho dbgeng.h, além das funções C que aparecem no arquivo de cabeçalho wdbgexts.h.

Se você pretende usar funções de wdbgexts.h, precisará definir KDEXT_64BIT antes que wdbgexts.h seja incluído. Por exemplo:

#define KDEXT_64BIT
#include wdbgexts.h
#include dbgeng.h

Para obter uma lista completa de interfaces em dbgeng.h que podem ser usadas em um comando de extensão, consulte Referência do mecanismo de depurador.

Para obter uma lista completa de funções em wdbgexts.h que podem ser usadas em um comando de extensão, consulte WdbgExts Functions. Várias dessas funções aparecem em versões de 32 bits e versões de 64 bits. Normalmente, as versões de 64 bits terminam em "64" e as versões de 32 bits não têm final numérico — por exemplo, ReadIoSpace64 e ReadIoSpace. Ao chamar uma função wdbgexts.h de uma extensão DbgEng, você sempre deve usar o nome da função que termina em "64". Isso ocorre porque o mecanismo de depurador sempre usa ponteiros de 64 bits internamente, independentemente da plataforma de destino.

Se você incluir wdbgexts.h em sua extensão DbgEng, chame GetWindbgExtensionApis64 durante a inicialização da DLL de extensão (consulte DebugExtensionInitialize).

Nota Você não deve tentar chamar nenhuma rotina DbgHelp ou ImageHlp de qualquer extensão de depurador. Não há suporte para chamar essas rotinas e pode causar vários problemas.