Afficher les locaux

Important

Dans Visual Studio 2015, cette façon d’implémenter des évaluateurs d’expression est déconseillée. Pour plus d’informations sur l’implémentation d’évaluateurs d’expression CLR, consultez l’exemple d’évaluateur d’expression CLR et d’évaluateur d’expression managée.

L’exécution a toujours lieu dans le contexte d’une méthode, également appelée méthode conteneur 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 et d’arguments locaux, appelées collectivement les variables locales de la méthode. Visual Studio affiche ces variables locales et leurs valeurs dans la fenêtre Locals .

Pour afficher les locaux, 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 le contexte d’évaluation. Si l’appel réussit, la IDebugExpressionEvaluator::GetMethodProperty méthode retourne un objet IDebugProperty2 , qui représente la méthode qui contient l’adresse d’exécution actuelle.

Le DE appelle EnumChildren pour obtenir un objet IEnumDebugPropertyInfo2 , qui est filtré pour retourner uniquement les locaux 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 Watch 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 de locals Utilise des exemples pour parcourir le processus d’implémentation des locaux.