Expression Evaluation Interfaces
Applies to: Visual Studio Visual Studio for Mac
Note
This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here
Important
In Visual Studio 2015, this way of implementing expression evaluators is deprecated. For information about implementing CLR expression evaluators, please see CLR Expression Evaluators and Managed Expression Evaluator Sample.
The following are the Expression Evaluation Interfaces for the Visual Studio Debugging SDK.
Discussion
These interfaces are used to evaluate expressions in a call stack during break mode. They are implemented only for common language run-time expression evaluators (EE).
Each interface in the table shows the component that can implement it from the following list:
Debug Engine (DE)
Expression Evaluator (EE)
Visual Studio (VS)
Interface | Implemented by | Description |
---|---|---|
IDebugAlias | EE | Represents a numeric alias for a variable. |
IDebugAlias2 | EE | Represents a numeric alias for a variable, and enables an expression evaluator (EE) to obtain the application domain for the alias. |
IDebugArrayObject | EE | Represents an array object. |
IDebugArrayObject2 | EE | Represents a managed array object, and allows an expression evaluator (EE) to determine the base index (lower bounds) for the array. |
IDebugBinder | DE | Represents a binder that binds debug symbols to actual addresses in memory. |
IDebugBinder3 | DE | Same as the IDebugBinder interface but provides access to types, aliases, and custom visualizers. |
IDebugExpressionEvaluator | EE | Represents the expression evaluator. |
IDebugExpressionEvaluator2 | EE | Represents an enhanced version of an expression evaluator (EE). |
IDebugExpressionEvaluator3 | EE | Represents an expression evaluator (EE) with an enhanced parser tree. |
IDebugFunctionObject | EE | Represents a function. |
IDebugFunctionObject2 | EE | Represents a function and enhances the IDebugFunctionObject interface. |
IDebugIDECallback | DE | Enables an expression evaluator (EE) to display a message in the debugger's output window. |
IDebugManagedObject | EE | Represents a managed code object. |
IDebugObject | EE | Base interface that represents any symbol bound to a memory address. |
IDebugObject2 | EE | Same as the IDebugObject interface but provides access to additional information. |
IDebugParsedExpression | EE | Represents a parsed expression ready to be evaluated. |
IDebugPointerObject | EE | Represents a pointer. |
IDebugPointerObject3 | EE | Represents a pointer in a parse tree, and extends the IDebugPointerObject interface. |
IEEVisualizerDataProvider | EE | Provides the ability to modify a type's value through a type visualizer. |
IEEVisualizerService | VS | Provides access to custom viewers and type visualizers. |
IEEVisualizerServiceProvider | VS | Provides the ability to create an IEEVisualizerService object. |
IEnumDebugObjects | EE | Represents a collection of IDebugObject objects. |