Partager via


Afficher les variables locales

Important

Dans Visual Studio 2015, cette façon de mettre en œuvre les évaluateurs d’expressions est obsolète. Pour des informations sur l’implémentation des évaluateurs d’expressions CLR, veuillez consulter la rubrique Évaluateurs d’expressions CLR et Exemple d’évaluateur d’expressions géré.

L’exécution a toujours lieu dans le contexte d’une méthode, également connue sous le nom de méthode contenante ou méthode actuelle. Lorsque l’exécution s’interrompt, Visual Studio appelle le moteur de débogage (DE) pour obtenir une liste de variables locales et d’arguments, collectivement appelés les variables locales de la méthode. Visual Studio affiche ces variables locales et leurs valeurs dans la fenêtre Locals.

Pour afficher les variables locales, le DE appelle la méthode GetMethodProperty appartenant à l’EE et lui donne un contexte d’évaluation, c’est-à-dire un fournisseur de symboles (SP), l’adresse d’exécution actuelle et un objet binder. Pour plus d’informations, consultez Contexte d’évaluation. Si l’appel aboutit, la méthode IDebugExpressionEvaluator::GetMethodProperty renvoie un objet IDebugProperty2, qui représente la méthode contenant l’adresse d’exécution actuelle.

Le DE appelle EnumChildren pour obtenir un objet IEnumDebugPropertyInfo2, qui est filtré pour ne renvoyer que les variables locales et énuméré pour produire une liste de structures DEBUG_PROPERTY_INFO. Chaque structure contient le nom, le type et la valeur d’un local. Le type et la valeur sont stockés sous forme de chaînes mises en forme, adaptées à l’affichage. Le nom, le type et la valeur sont généralement affichés ensemble dans une ligne de la fenêtre Locals.

Remarque

Les fenêtres QuickWatch et Espion affichent également des variables avec le même format de nom, de valeur et de type. Toutefois, ces valeurs sont obtenues en appelant GetPropertyInfo au lieu de IDebugProperty2::EnumChildren.

Contenu de cette section

Exemple d’implémentation des variables locales utilise des exemples pour parcourir le processus d’implémentation des variables locales.