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”格式的 Plugin.Exception."Phase"."DLL" HRESULT 的键字符串和值字符串通过键/值报告错误。

要求

要求
目标平台 桌面
标头 extsfns.h

另请参阅

编写自定义分析调试器扩展

编写分析扩展插件以扩展 !analyze