次の方法で共有


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

関連項目

カスタム分析デバッガー拡張機能の作成

拡張する分析拡張機能プラグインの記述 !analyze