EXT_ANALYSIS_PLUGIN fonction de rappel (extsfns.h)
Lorsque vous écrivez une extension d’analyse, vous devez implémenter une EXT_ANALYSIS_PLUGIN exportée en tant que (_EFN_Analyze). Lorsque la commande !analyze débogueur s’exécute, elle appelle votre _EFN_Analyze dans chaque phase, afin que vous puissiez participer à l’analyse.
La convention d’appel WINAPI (__stdcall) est requise. Aucune exception (noexcept) ne doit quitter la fonction.
Syntaxe
EXT_ANALYSIS_PLUGIN ExtAnalysisPlugin;
HRESULT ExtAnalysisPlugin(
[in] PDEBUG_CLIENT4 Client,
[in] FA_EXTENSION_PLUGIN_PHASE CallPhase,
[in] PDEBUG_FAILURE_ANALYSIS2 pAnalysis
)
{...}
Paramètres
[in] Client
Pointeur vers une interface IDebugClient4 . Utilisez cette interface pour accéder au débogueur. Utilisez QueryInterface pour accéder à d’autres interfaces de débogueur, telles que les interfaces héritées (IDebug*
), Hôte de débogage (IDebugHost*
), Modèle de données (IDataModel*
), etc..
[in] CallPhase
Valeur dans l’énumération FA_EXTENSION_PLUGIN_PHASE qui spécifie la phase de l’analyse en cours. Les phases d’analyse incluent l’initialisation, l’analyse de la pile, le pré-compartimentage et le post-compartimentage.
[in] pAnalysis
Pointeur vers une interface IDebugFailureAnalysis2 . Utilisez cette interface pour obtenir/définir les propriétés de l’analyse. Utilisez QueryInterface pour accéder à d’autres interfaces !analyze.
Valeur retournée
S_OK : une modification a été apportée.
S_FALSE : aucune modification n’a été apportée.
E_* : une erreur s’est produite. !analyze signale l’erreur via Key/Value à l’aide d’une chaîne de Plugin.Exception."Phase"."DLL"
clé et d’une chaîne de valeur du HRESULT au format « 0x%08x ».
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | extsfns.h |
Voir aussi
Écriture de l’extension de débogueur d’analyse personnalisée
Écriture d’un plug-in d’extension d’analyse pour Étendre !analyze