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"
键字符串和值字符串,通过键/值报告错误。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | extsfns.h |