次の方法で共有


EngExtCpp 拡張機能の作成

EngExtCpp 拡張ライブラリには、任意の標準 C++ コードを含めることができます。 wdbgexts.h ヘッダー ファイルに表示される C 関数に加えて、engextcpp.h および dbgeng.h ヘッダー ファイルに表示される C++ インターフェイスを含めることもできます。 dbgeng.h と wdbgexts.h の両方が engextcpp.h から含まれています。

拡張コマンドで使用できる dbgeng.h のインターフェイスの完全な一覧については、「 デバッガー エンジン リファレンス」を参照してください

拡張コマンドで使用できる wdbgexts.h の関数の完全な一覧については、 WdbgExts 関数を参照してください。 これらの関数の数は、32 ビット バージョンと 64 ビット バージョンで表示されます。 通常、64 ビット バージョンは "64" で終わり、32 ビット バージョンには数値の終了はありません ( たとえば、ReadIoSpace64ReadIoSpace)。 DbgEng 拡張機能から wdbgexts.h 関数を呼び出す場合は、常に "64" で終わる関数名を使用する必要があります。 これは、 デバッガー エンジン は、ターゲット プラットフォームに関係なく、常に 64 ビット ポインターを内部的に使用するためです。 wdbgexts.h を含める場合、engextcpp.h は API の 64 ビット バージョンを選択します。 WDbgExts API によって使用される ExtensionApis グローバル変数は、EngExtCpp メソッドへのエントリで自動的に初期化され、終了時にクリアされます。

リモート DbgEng インターフェイスで EngExtCpp 拡張機能を使用する場合、WDbgExts インターフェイスは使用できませんし、 ExtensionApis 構造体をゼロにすることができます。 EngExtCpp 拡張機能がこのような環境で機能することが予想される場合は、WDbgExts API の使用を避ける必要があります。

手記 デバッガー拡張機能から DbgHelp ルーチンまたは ImageHlp ルーチンを呼び出そうとしないでください。 これらのルーチンの呼び出しはサポートされておらず、さまざまな問題が発生する可能性があります。