次の方法で共有


EngExtCpp 拡張機能の作成

EngExtCpp 拡張ライブラリには、任意の標準 C++ コードを含めることができます。 wdbgexts.h ヘッダー ファイルに表示される C 関数に加えて、engextcpp.h および dbgeng.h ヘッダー ファイルに表示される C++ インターフェイスを含めることもできます。 engextcpp.h から、dbgeng.h と wdbgexts.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 ルーチンを呼び出そうとしないでください。 これらのルーチンの呼び出しはサポートされていないため、さまざまな問題が発生する可能性があります。