デバッガー拡張機能コマンドの使用

デバッガー拡張コマンドの使用は、デバッガー コマンドの使用と非常に似ています。 コマンドは [デバッガー コマンド] ウィンドウに入力され、このウィンドウに出力が生成されるか、ターゲット アプリケーションまたはターゲット コンピューターに変更が生成されます。

実際のデバッガ拡張コマンドは、デバッガによって呼び出される DLL 内のエントリ ポイントです。

デバッガー拡張機能は、次の構文によって呼び出されます。

![モジュール.]拡張子[引数]

モジュール名の後に .dll ファイル名拡張子を付けることはできません。 モジュールにフルパスが含まれる場合、デフォルトの文字列サイズ制限は 255 文字です。

モジュールがまだロードされていない場合は、LoadLibrary(module) の呼び出しを使用してデバッガにロードされます。 デバッガーは拡張ライブラリをロードした後、GetProcAddress 関数を呼び出して、拡張モジュール内の拡張名を見つけます。 拡張機能名は大文字と小文字が区別され、拡張モジュールの .def ファイルに表示されているとおりに正確に入力する必要があります。 内線アドレスが見つかった場合は、内線が呼び出されます。

検索順序

モジュール名が指定されていない場合、デバッガーはこのエクスポート用にロードされた拡張モジュールを検索します。

デフォルトの検索順序は次のとおりです。

  1. すべてのオペレーティング システムおよび両方のモードで動作する拡張モジュール: Dbghelp.dll と winnext\ext.dll。

  2. すべてのモードで動作しますが、オペレーティング システム固有の拡張モジュールです。 Windows XP 以降のバージョンの Windows の場合、これは winxp\exts.dll です。

  3. すべてのオペレーティング システムで動作しますが、モード固有の拡張モジュールです。 カーネル モードの場合、これは winext\kext.dll です。 ユーザーモードの場合、これはwinext\uext.dllです。

  4. オペレーティング システム固有およびモード固有の両方の拡張モジュール。 次の表は、このモジュールを指定します。

ユーザー モード カーネル モード
winxp\ntsdexts.dll winxp\kdexts.dll

拡張モジュールがアンロードされると、検索チェーンから削除されます。 拡張モジュールがロードされると、検索順序の先頭に追加されます。 .setdll (デフォルト拡張 DLL の設定) コマンドを使用すると、任意のモジュールを検索チェーンの最上位に昇格させることができます。 このコマンドを繰り返し使用すると、検索チェーンを完全に制御できます。

.setdll (デフォルト拡張 DLL の設定) コマンドを使用すると、任意のモジュールを検索チェーンの最上位に昇格させることができます。

ロードされた拡張モジュールのいずれにも含まれていない拡張コマンドを実行しようとすると、「エクスポートが見つかりません」というエラー メッセージが表示されます。