表达式评估器

表达式计算器(EE)检查语言的语法,以便在运行时分析和计算变量和表达式,从而允许用户在 IDE 处于中断模式时查看它们。

使用表达式计算器

表达式是使用 ParseText 方法创建的,如下所示:

  1. 调试引擎 (DE) 实现 IDebugExpressionContext2 接口。

  2. 调试包从 IDebugExpressionContext2 接口获取对象,然后对其调用IDebugStackFrame2::ParseText该方法以获取 IDebugExpression2 对象。

  3. 调试包调用 EvaluateSync 方法或 EvaluateAsync 方法以获取表达式的值。 IDebugExpression2::EvaluateAsync 是从命令/即时窗口调用的。 所有其他 UI 组件调用 IDebugExpression2::EvaluateSync

  4. 表达式计算的结果是一个 IDebugProperty2 对象,该对象包含表达式计算结果的名称、类型和值。

    在表达式求值期间,EE 需要从符号提供程序的组件中获取信息。 符号提供程序提供用于标识和理解已分析表达式的符号信息。

    异步表达式计算完成后,DE 通过会话调试管理器(SDM)发送异步事件,以通知 IDE 表达式计算已完成。 然后,评估结果将从调用IDebugExpression2::EvaluateSync 方法中返回。

实现说明

Visual Studio 调试引擎希望使用公共语言运行时 (CLR) 接口与表达式计算器通信。 因此,与 Visual Studio 调试引擎配合使用的表达式计算器必须支持 CLR(所有 CLR 调试接口的完整列表都可以在 windows 软件开发工具包(SDK)的debugref.doc中找到。

另请参阅