Partager via


Interfaces de l’évaluateur d’expression clé

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 des évaluateurs d’expression CLR, consultez les évaluateurs d’expression CLR et l’exemple d’évaluateur d’expression managée.

Lors de l’écriture d’un évaluateur d’expression (EE), ainsi que le contexte d’évaluation, vous devez être familiarisé avec les interfaces suivantes.

Descriptions de l’interface

  • IDebugAddress

    Possède une méthode unique , GetAddress, qui obtient une structure de données qui représente le point d’exécution actuel. Cette structure de données est l’un des trois arguments que le moteur de débogage (DE) passe à la méthode EvaluateSync pour évaluer une expression. Cette interface est généralement implémentée par le fournisseur de symboles.

  • IDebugBinder

    A la méthode Bind , qui obtient la zone mémoire qui contient la valeur actuelle d’un symbole. Étant donné la méthode conteneur, représentée par un objet IDebugObject et le symbole lui-même, représenté par un objet IDebugField , IDebugBinder::Bind retourne la valeur du symbole. IDebugBinder est généralement implémenté par le DE.

  • IDebugField

    Représente un type de données simple. Pour les types plus complexes, tels que les tableaux et les méthodes, utilisez respectivement les interfaces IDebugArrayField et IDebugMethodField dérivées. IDebugContainerField est une autre interface dérivée importante qui représente des symboles contenant d’autres symboles, tels que des méthodes ou des classes. L’interface IDebugField (et ses dérivés) est généralement implémentée par le fournisseur de symboles.

    Un IDebugField objet peut être utilisé pour rechercher le nom et le type d’un symbole et, avec un objet IDebugBinder , peut être utilisé pour rechercher sa valeur.

  • IDebugObject

    Représente les bits réels de la valeur d’exécution d’un symbole. Bind prend un objet IDebugField , qui représente un symbole et retourne un objet IDebugObject . La méthode GetValue retourne la valeur du symbole dans une mémoire tampon. Un DE implémente généralement cette interface pour représenter la valeur d’une propriété en mémoire.

  • IDebugExpressionEvaluator

    Cette interface représente l’évaluateur d’expression lui-même. La méthode clé est Parse, qui retourne une interface IDebugParsedExpression .

  • IDebugParsedExpression

    Cette interface représente une expression analysée prête à être évaluée. La méthode clé est EvaluateSync qui retourne un IDebugProperty2 représentant la valeur et le type de l’expression.

  • IDebugProperty2

    Cette interface représente une valeur et son type et est le résultat d’une évaluation d’expression.

Voir aussi