Partager via


Interfaces d’évaluateur d’expression clé

Important

Dans Visual Studio 2015, cette façon de mettre en œuvre les évaluateurs d’expressions est obsolète. Pour des informations sur la mise en œuvre des évaluateurs d’expressions CLR, veuillez consulter les pages les évaluateurs d’expression CLR et l’exemple d’évaluateur d’expression managée.

Lorsque vous écrivez un évaluateur d’expressions (EE), ainsi que le contexte d’évaluation, vous devriez vous familiariser avec les interfaces suivantes.

Descriptions des interfaces :

  • IDebugAddress

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

  • IDebugBinder

    Dispose de la méthode Bind, qui récupère la zone mémoire contenant la valeur actuelle d’un symbole. En donnant à la fois la méthode contenant, 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ée par le DE.

  • IDebugField

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

    Un objet IDebugField 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 renvoie un objet IDebugObject. La méthode GetValue retourne la valeur du symbole dans un tampon mémoire. 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’expressions lui-même. La méthode clé est Parse, qui renvoie une interface IDebugParsedExpression.

  • IDebugParsedExpression

    Cette interface représente une expression analysée prête à être évaluée. La méthode clé est EvaluateSync, qui renvoie une 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