EXT_ANALYSIS_PLUGIN funzione di callback (extsfns.h)
Quando si scrive un'estensione di analisi, è necessario implementare un EXT_ANALYSIS_PLUGIN esportato come (_EFN_Analyze). Quando il comando !analizza debugger viene eseguito, chiama il _EFN_Analyze in ogni fase, in modo che sia possibile partecipare all'analisi.
È necessaria la convenzione di chiamata WINAPI (__stdcall). Nessuna eccezione (noexcept) deve lasciare la funzione.
Sintassi
EXT_ANALYSIS_PLUGIN ExtAnalysisPlugin;
HRESULT ExtAnalysisPlugin(
[in] PDEBUG_CLIENT4 Client,
[in] FA_EXTENSION_PLUGIN_PHASE CallPhase,
[in] PDEBUG_FAILURE_ANALYSIS2 pAnalysis
)
{...}
Parametri
[in] Client
Puntatore a un'interfaccia IDebugClient4 . Usare questa interfaccia per accedere al debugger. Usare QueryInterface per accedere ad altre interfacce debugger, ad esempio Legacy (), Debug Host (IDebug*
), Data Model (IDebugHost*
IDataModel*
) e così via.
[in] CallPhase
Valore nell'enumerazione FA_EXTENSION_PLUGIN_PHASE che specifica quale fase dell'analisi è attualmente in corso. Le fasi di analisi includono inizializzazione, analisi dello stack, pre-bucketing e post-bucketing.
[in] pAnalysis
Puntatore a un'interfaccia IDebugFailureAnalysis2 . Usare questa interfaccia per ottenere/impostare le proprietà dell'analisi. Usare QueryInterface per accedere ad altre interfacce !analyze.
Valore restituito
S_OK: è stata apportata una modifica.
S_FALSE : non sono state apportate modifiche.
E_* - Si è verificato un errore. !analizza segnala l'errore tramite Chiave/Valore usando una stringa Chiave di Plugin.Exception."Phase"."DLL"
e La stringa Valore di HRESULT nel formato "0x%08x".
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | extsfns.h |
Vedi anche
Scrittura di estensione del debugger di analisi personalizzata
Scrittura di un plug-in dell'estensione di analisi per estendere !analizza