Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
When you write an Analysis Extension, you must implement an EXT_ANALYSIS_PLUGIN exported as (_EFN_Analyze). When the !analyze debugger command runs, it calls your _EFN_Analyze in each phase, so that you can participate in the analysis.
The WINAPI (__stdcall) calling convention is required. No exceptions (noexcept) should leave the function.
Syntax
EXT_ANALYSIS_PLUGIN ExtAnalysisPlugin;
HRESULT ExtAnalysisPlugin(
[in] PDEBUG_CLIENT4 Client,
[in] FA_EXTENSION_PLUGIN_PHASE CallPhase,
[in] PDEBUG_FAILURE_ANALYSIS2 pAnalysis
)
{...}
Parameters
[in] Client
A pointer to an IDebugClient4 interface. Use this interface to access the debugger. Use QueryInterface to access other Debugger interfaces, such as the Legacy (IDebug*
), Debug Host (IDebugHost*
), Data Model (IDataModel*
), etc., interfaces.
[in] CallPhase
A value in the FA_EXTENSION_PLUGIN_PHASE enumeration that specifies which phase of the analysis is currently in progress. Analysis phases include initialization, stack analysis, pre-bucketing, and post-bucketing.
[in] pAnalysis
A pointer to a IDebugFailureAnalysis2 interface. Use this interface to Get/Set properties of the analysis. Use QueryInterface to access other !analyze interfaces.
Return value
S_OK – A change was made.
S_FALSE – No changes were made.
E_* - An error occurred. !analyze will report the error via Key/Value using a Key string of Plugin.Exception."Phase"."DLL"
and Value string of the HRESULT in “0x%08x” format.
Requirements
Requirement | Value |
---|---|
Target Platform | Desktop |
Header | extsfns.h |