Expression Evaluation Interfaces

Applies to: yesVisual Studio noVisual 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.

See also