Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 variables locales, le DE appelle la méthode GetMethodProperty appartenant à l’EE et fournit un contexte d’évaluation, c’est-à-dire un fournisseur de symboles (SP), l’adresse d’exécution actuelle et un objet rattacheur. 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 seulement 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 .
Note
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.
Dans cette section
L’exemple d’implémentation des variables locales utilise des exemples pour illustrer le processus d’implémentation de celles-ci.
Contenu connexe
Le contexte d’évaluation explique que lorsque le moteur de débogage appelle l’évaluateur d’expression (EE), il passe trois arguments.