次の方法で共有


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 では、"0x%08x" 形式の HRESULT の Plugin.Exception."Phase"."DLL" Key 文字列と Value 文字列を使用して、Key/Value を使用してエラーが報告されます。

要件

要件
対象プラットフォーム デスクトップ
Header extsfns.h

こちらもご覧ください

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

!analyze を拡張する分析拡張機能プラグインの作成