表达式计算器

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

使用表达式计算

可以使用 ParseText 创建表达式,如下所示:

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

  2. 调试包从 IDebugStackFrame2 接口获取 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 中找到。

另请参阅