Schreiben von DbgEng-Erweiterungscode

DbgEng-Erweiterungsbefehle können jeden C++-Standardcode enthalten. Sie können auch die C++-Schnittstellen enthalten, die in der Headerdatei dbgeng.h angezeigt werden, zusätzlich zu den C-Funktionen, die in der Headerdatei "wdbgexts.h" angezeigt werden.

Wenn Sie Funktionen von wdbgexts.h verwenden möchten, müssen Sie KDEXT_64BIT definieren, bevor wdbgexts.h enthalten ist. Beispiel:

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

Eine vollständige Liste der Schnittstellen in dbgeng.h, die in einem Erweiterungsbefehl verwendet werden können, finden Sie unter Referenz zu Debugger-Engine.

Eine vollständige Liste der Funktionen in wdbgexts.h, die in einem Erweiterungsbefehl verwendet werden können, finden Sie unter WdbgExts Functions. Einige dieser Funktionen werden in 32-Bit- und 64-Bit-Versionen angezeigt. In der Regel enden die 64-Bit-Versionen auf "64", und die 32-Bit-Versionen haben keine numerische Endung , z. B. ReadIoSpace64 und ReadIoSpace. Beim Aufrufen einer wdbgexts.h-Funktion aus einer DbgEng-Erweiterung sollten Sie immer den Funktionsnamen verwenden, der auf "64" endet. Dies liegt daran, dass die Debugger-Engine unabhängig von der Zielplattform immer intern 64-Bit-Zeiger verwendet.

Wenn Sie wdbgexts.h in Ihre DbgEng-Erweiterung einschließen, sollten Sie getWindbgExtensionApis64 während der Initialisierung Ihrer Erweiterungs-DLL aufrufen (siehe DebugExtensionInitialize).

Hinweis Sie dürfen nicht versuchen, DbgHelp- oder ImageHlp-Routinen über eine Debuggererweiterung aufzurufen. Das Aufrufen dieser Routinen wird nicht unterstützt und kann zu einer Vielzahl von Problemen führen.