Évaluateur d’expressionExpression Evaluator

Évaluateurs d’expression (EE) examiner la syntaxe d’une langue pour analyser et évaluer les variables et les expressions au moment de l’exécution, ce qui permet à être affiché par l’utilisateur lors de l’IDE est en mode arrêt.Expression evaluators (EE) examine the syntax of a language to parse and evaluate variables and expressions at run time, allowing them to be viewed by the user when the IDE is in break mode.

À l’aide des évaluateurs d’ExpressionUsing Expression Evaluators

Les expressions sont créées à l’aide de la ParseText méthode, comme suit :Expressions are created using the ParseText method, as follows:

  1. Le moteur de débogage (DE) implémente la IDebugExpressionContext2 interface.The debug engine (DE) implements the IDebugExpressionContext2 interface.

  2. Le package de débogage Obtient un IDebugExpressionContext2 à partir de l’objet une IDebugStackFrame2 interface, puis appelle la IDebugStackFrame2::ParseText méthode pour obtenir un IDebugExpression2 objet.The debug package gets an IDebugExpressionContext2 object from an IDebugStackFrame2 interface and then calls the IDebugStackFrame2::ParseText method on it to get an IDebugExpression2 object.

  3. Les appels de package de débogage la EvaluateSync méthode ou la EvaluateAsync méthode pour obtenir la valeur de l’expression.The debug package calls the EvaluateSync method or the EvaluateAsync method to get the value of the expression. IDebugExpression2::EvaluateAsync est appelé à partir de la fenêtre commande/exécution.IDebugExpression2::EvaluateAsync is called from the Command/Immediate window. Tous les autres composants de l’interface utilisateur appellent IDebugExpression2::EvaluateSync.All other UI components call IDebugExpression2::EvaluateSync.

  4. Le résultat de l’évaluation de l’expression est une IDebugProperty2 objet, qui contient le nom, le type et la valeur du résultat de l’évaluation d’expression.The result of expression evaluation is an IDebugProperty2 object, which contains the name, type, and value of the result of the expression evaluation.

    Lors de l’évaluation d’expression, le EE requiert des informations à partir du composant de fournisseur de symboles.During expression evaluation, the EE requires information from the symbol provider component. Le fournisseur de symbole fournit des informations sur les symboles utilisées pour identifier et de comprendre l’expression analysée.The symbol provider supplies the symbolic information used for identifying and understanding the parsed expression.

    Lors de l’évaluation de l’expression asynchrone est terminée, un événement asynchrone envoyé par le DE via le Gestionnaire de session de débogage (SDM) pour informer l’IDE que l’évaluation de l’expression est terminée.When asynchronous expression evaluation is complete, an asynchronous event is sent by the DE through the session debug manager (SDM) to notify the IDE that expression evaluation is complete. Lors de l’évaluation d’expression synchrone est terminée, le résultat de l’évaluation est retourné à partir de l’appel à la IDebugExpression2::EvaluateSync (méthode).When synchronous expression evaluation is complete, the result of the evaluation is returned from the call to the IDebugExpression2::EvaluateSync method.

Remarques d’implémentationImplementation Notes

Le Visual StudioVisual Studio des moteurs de débogage s’attendre à communiquer avec l’évaluateur d’expression à l’aide des interfaces du Common Language Runtime (CLR).The Visual StudioVisual Studio debug engines expect to talk with the expression evaluator using Common Language Runtime (CLR) interfaces. Par conséquent, un évaluateur d’expression qui fonctionne avec les Visual StudioVisual Studio des moteurs de débogage doivent prendre en charge le CLR (vous trouverez une liste complète de toutes les interfaces de débogage de CLR dans debugref.doc, qui fait partie de la Kit de développement logiciel WindowsWindows Software Development Kit (SDK)).As a result, an expression evaluator that works with the Visual StudioVisual Studio debug engines must support the CLR (a complete list of all CLR debugging interfaces can be found in debugref.doc, which is part of the Kit de développement logiciel WindowsWindows Software Development Kit (SDK)).

Voir aussiSee Also

Composants du débogueurDebugger Components