Variables locales d’affichageDisplay locals

Important

Dans Visual Studio 2015, ce moyen d’implémenter des évaluateurs d’expression est déconseillée.In Visual Studio 2015, this way of implementing expression evaluators is deprecated. Pour plus d’informations sur l’implémentation des évaluateurs d’expression CLR, consultez évaluateurs d’expression CLR et exemple d’évaluateur d’expression managé.For information about implementing CLR expression evaluators, see CLR expression evaluators and Managed expression evaluator sample.

L’exécution toujours a lieu dans le contexte d’une méthode, également appelé la méthode conteneur ou la méthode actuelle.Execution always takes place within the context of a method, also known as the containing method or current method. Lors de l’exécution s’interrompt, Visual Studio appelle le moteur de débogage (dé) pour obtenir la liste des variables locales et les arguments, appelés collectivement les variables locales de la méthode.When execution pauses, Visual Studio calls the debug engine (DE) to get a list of local variables and arguments, collectively called the locals of the method. Visual Studio affiche ces variables locales et leurs valeurs dans le variables locales fenêtre.Visual Studio displays these locals and their values in the Locals window.

Pour afficher les variables locales, appelle la DE la GetMethodProperty méthode appartenant à la EE et lui donne un contexte d’évaluation, qui est, un fournisseur de symboles (SP), l’adresse de l’exécution actuelle et un objet de classeur.To display locals, the DE calls the GetMethodProperty method belonging to the EE and gives it an evaluation context, that is, a symbol provider (SP), the current execution address, and a binder object. Pour plus d’informations, consultez contexte d’évaluation.For more information, see Evaluation context. Si l’appel réussit, la IDebugExpressionEvaluator::GetMethodProperty méthode retourne un IDebugProperty2 objet qui représente la méthode qui contient l’adresse de l’exécution actuelle.If the call succeeds, the IDebugExpressionEvaluator::GetMethodProperty method returns an IDebugProperty2 object, which represents the method that contains the current execution address.

Les appels DE EnumChildren pour obtenir un IEnumDebugPropertyInfo2 objet, qui est filtré pour retourner des variables locales uniquement et énumérée pour produire une liste de DEBUG_PROPERTY_INFOstructures.The DE calls EnumChildren to get an IEnumDebugPropertyInfo2 object, which is filtered to return only locals and enumerated to produce a list of DEBUG_PROPERTY_INFO structures. Chaque structure contient le nom, le type et la valeur d’une variable locale.Each structure contains the name, type, and value of a local. Le type et la valeur sont stockées sous forme de chaînes de mise en forme, qui peut s’afficher.The type and value are stored as formatted strings, suitable for display. Le nom, le type et la valeur sont généralement affichées ensemble dans une seule ligne de la variables locales fenêtre.The name, type, and value are typically displayed together in one line of the Locals window.

Note

Le Espion express et espion fenêtres affichent également des variables avec le même format de nom, valeur et type.The QuickWatch and Watch windows also display variables with the same format of name, value, and type. Toutefois, ces valeurs sont obtenues en appelant GetPropertyInfo au lieu de IDebugProperty2::EnumChildren.However, those values are obtained by calling GetPropertyInfo instead of IDebugProperty2::EnumChildren.

Dans cette sectionIn this section

Exemple d’implémentation des variables localesSample implementation of locals
Utilise des exemples pas à pas détaillé dans le processus d’implémentation des variables locales.Uses examples to step through the process of implementing locals.

Contexte d’évaluationEvaluation context
Explique que lorsque le moteur de débogage (dé) appelle l’évaluateur d’expression (EE), il passe trois arguments.Explains that when the debug engine (DE) calls the expression evaluator (EE), it passes three arguments.

Voir aussiSee also

Écrire un évaluateur d’expression de CLRWrite a CLR expression evaluator