表达式计算器
表达式计算器 (EE) 检查语言的语法,以便在运行时解析和计算变量和表达式,从而允许用户在 IDE 处于中断模式时查看这些变量和表达式。
使用表达式计算
可以使用 ParseText 创建表达式,如下所示:
调试引擎 (DE) 实现 IDebugExpressionContext2 接口。
调试包从 IDebugStackFrame2 接口获取
IDebugExpressionContext2
对象,然后在其上调用IDebugStackFrame2::ParseText
方法以获取 IDebugExpression2 对象。调试包调用 EvaluateSync 方法或 EvaluateAsync 方法以获取表达式的值。
IDebugExpression2::EvaluateAsync
从“命令/即时”窗口调用。 所有其他 UI 组件调用IDebugExpression2::EvaluateSync
。表达式计算的结果是一个 IDebugProperty2 对象,该对象包含表达式计算结果的名称、类型和值。
在表达式计算期间,EE 需要来自符号提供程序组件的信息。 符号提供程序提供用于标识和理解已解析表达式的符号信息。
异步表达式计算完成后,DE 通过会话调试管理器 (SDM) 发送异步事件,以通知 IDE 表达式计算已完成。 然后,将从调用
IDebugExpression2::EvaluateSync
方法返回计算结果。
实现说明
Visual Studio 调试引擎希望使用公共语言运行时 (CLR) 接口与表达式计算器进行通信。 因此,与 Visual Studio 调试引擎配合使用的表达式计算器必须支持 CLR(所有 CLR 调试接口的完整列表都可以在 Windows 软件开发工具包 (SDK) 的 debugref.doc 中找到。