Partager via


IDebugExpression2

Cette interface représente une expression analysée prête pour la liaison et l’évaluation.

Syntaxe

IDebugExpression2 : IUnknown

Remarques pour les implémenteurs

Le moteur de débogage (DE) implémente cette interface pour représenter une expression analysée prête à être évaluée.

Remarques pour les appelants

Un appel à ParseText retourne cette interface. GetExpressionContext retourne l’interface IDebugExpressionContext2 . Ces interfaces sont accessibles uniquement lorsque le programme en cours de débogage a été suspendu et qu’une trame de pile est disponible.

Méthodes dans l'ordre Vtable

Le tableau suivant présente les méthodes de IDebugExpression2.

Méthode Description
EvaluateAsync Évalue cette expression de façon asynchrone.
Abort Termine l’évaluation d’expression asynchrone.
EvaluateSync Évalue cette expression de façon synchrone.

Notes

Lorsqu’un programme s’est arrêté, le gestionnaire de débogage de session (SDM) obtient une trame de pile à partir du DE avec un appel à EnumFrameInfo. Le SDM appelle ensuite GetExpressionContext pour obtenir l’interface IDebugExpressionContext2 . Il est suivi d’un appel à ParseText pour créer l’interface IDebugExpression2 , qui représente l’expression analysée prête à être évaluée.

Le SDM appelle EvaluateSync ou EvaluateAsync pour évaluer réellement l’expression et produire une valeur.

Dans une implémentation de IDebugExpressionContext2::ParseText, la fonction DE utilise la fonction COM CoCreateInstance pour instancier un évaluateur d’expression et obtenir une interface IDebugExpressionEvaluator (voir l’exemple dans l’interface IDebugExpressionEvaluator ). Le DE appelle ensuite Parse pour obtenir une interface IDebugParsedExpression . Cette interface est utilisée dans l’implémentation et IDebugExpression2::EvaluateSync IDebugExpression2::EvaluateAsync pour effectuer l’évaluation.

Spécifications

En-tête : msdbg.h

Espace de noms : Microsoft.VisualStudio.Debugger.Interop

Assembly : Microsoft.VisualStudio.Debugger.Interop.dll

Voir aussi