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 viene eseguito il comando !analyze debugger, chiama il _EFN_Analyze in ogni fase, in modo da poter 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 del debugger, ad esempio legacy (IDebug*
), host di debug (IDebugHost*
), modello di dati (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 l'inizializzazione, l'analisi dello stack, il pre-bucket e il 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. !analyze 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".
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Desktop |
intestazione | extsfns.h |
Vedere anche
scrittura di dell'estensione del debugger di analisi personalizzata
Scrittura di un plug-in dell'estensione di analisi per estendere !analyze