EXT_ANALYSIS_PLUGIN コールバック関数 (extsfns.h)
分析拡張機能を記述するときは、(_EFN_Analyze) としてエクスポートされた EXT_ANALYSIS_PLUGIN を実装する必要があります。 !analyze デバッガー コマンドを実行すると、各フェーズで _EFN_Analyze が呼び出され、分析に参加できるようになります。
WINAPI (__stdcall) 呼び出し規則が必要です。 例外 (noexcept) は関数から離れる必要はありません。
構文
EXT_ANALYSIS_PLUGIN ExtAnalysisPlugin;
HRESULT ExtAnalysisPlugin(
[in] PDEBUG_CLIENT4 Client,
[in] FA_EXTENSION_PLUGIN_PHASE CallPhase,
[in] PDEBUG_FAILURE_ANALYSIS2 pAnalysis
)
{...}
パラメーター
[in] Client
IDebugClient4 インターフェイスへのポインター。 デバッガーにアクセスするには、このインターフェイスを使用します。 QueryInterface を使用して、レガシ (IDebug*
)、デバッグ ホスト (IDebugHost*
)、データ モデル (IDataModel*
) などの他のデバッガー インターフェイスにアクセスします。
[in] CallPhase
現在進行中の分析のフェーズを指定する FA_EXTENSION_PLUGIN_PHASE 列挙体の値。 分析フェーズには、初期化、スタック分析、事前バケット、バケット後などがあります。
[in] pAnalysis
IDebugFailureAnalysis2 インターフェイスへのポインター。 このインターフェイスを使用して、分析のプロパティを取得/設定します。 QueryInterface を使用して他の !analyze インターフェイスにアクセスします。
戻り値
S_OK – 変更が行われました。
S_FALSE – 変更は行われませんでした。
E_* - エラーが発生しました。 !analyze では、HRESULT の Plugin.Exception."Phase"."DLL"
のキー文字列と "0x%08x" 形式の Value 文字列を使用して、Key/Value を使用してエラーが報告されます。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | extsfns.h |
関連項目
カスタム分析デバッガー拡張機能の作成 の