Évaluateur d’expression
Les évaluateurs d’expressions (EE) examinent la syntaxe d’un langage pour analyser et évaluer les variables et expressions à l’exécution, ce qui permet de les visualiser par l’utilisateur lorsque l’IDE est en mode pause.
Utilisation des évaluateurs d’expressions :
Les expressions sont créées en utilisant la méthode ParseText comme suit :
Le moteur de débogage (DE) implémente l’interface IDebugExpressionContext2.
Le package de débogage obtient un objet
IDebugExpressionContext2
à partir d’une interface IDebugStackFrame2, puis appelle la méthodeIDebugStackFrame2::ParseText
sur celui-ci pour obtenir un objet IDebugExpression2.Le package de débogage appelle la méthode EvaluateSync ou la méthode EvaluateAsync pour obtenir la valeur de l’expression.
IDebugExpression2::EvaluateAsync
est appelé depuis la fenêtre Commande/Immédiate. Tous les autres composants de l’interface utilisateur appellentIDebugExpression2::EvaluateSync
.Le résultat de l’évaluation de l’expression est un objet IDebugProperty2, qui contient le nom, le type et la valeur du résultat de l’évaluation de l’expression.
Pendant l’évaluation de l’expression, l’EE a besoin d’informations provenant du composant fournisseur de symboles. Ce dernier fournit les informations symboliques utilisées pour identifier et comprendre l’expression analysée.
Lorsque l’évaluation asynchrone de l’expression est terminée, un événement asynchrone est envoyé par le DE à travers le gestionnaire de débogage de session (SDM) pour notifier l’IDE que l’évaluation de l’expression est terminée. Ensuite, le résultat de l’évaluation est renvoyé de l’appel à la méthode
IDebugExpression2::EvaluateSync
.
Remarques relatives à l’implémentation
Les moteurs de débogage de Visual Studio s’attendent à communiquer avec l’évaluateur d’expressions en utilisant des interfaces du Common Language Runtime (CLR). Par conséquent, un évaluateur d’expressions qui fonctionne avec les moteurs de débogage de Visual Studio doit prendre en charge le CLR (une liste complète de toutes les interfaces de débogage CLR peut être trouvée dans debugref.doc, qui fait partie du Kit de développement logiciel (SDK) Windows).