此接口表示已分析的表达式,可用于绑定和计算。
语法
IDebugExpression2 : IUnknown
实现者须知
调试引擎 (DE) 实现此接口来表示已分析的表达式,可供计算。
对调用者的说明
对 ParseText 的调用将返回此接口。 GetExpressionContext 返回 IDebugExpressionContext2 接口。 仅当正在调试的程序已暂停且堆栈帧可用时,才能访问这些接口。
Vtable 顺序中的方法
下表显示了 IDebugExpression2 方法。
| 方法 | 说明 |
|---|---|
| EvaluateAsync | 异步计算此表达式。 |
| Abort | 结束异步表达式计算。 |
| EvaluateSync | 同步计算此表达式。 |
注解
当程序停止时,会话调试管理器(SDM)通过调用 EnumFrameInfo 从 DE 获取堆栈帧。 然后,SDM 调用 GetExpressionContext 以获取 IDebugExpressionContext2 接口。 随后 调用 ParseText 以创建 IDebugExpression2 接口,该接口表示已分析的表达式可供计算。
SDM 调用 EvaluateSync 或 EvaluateAsync 以实际计算表达式并生成值。
在实现 IDebugExpressionContext2::ParseText中,DE 使用 COM 的 CoCreateInstance 函数实例化表达式计算器并获取 IDebugExpressionEvaluator 接口(请参阅接口中的 IDebugExpressionEvaluator 示例)。 然后,DE 调用 Parse 以获取 IDebugParsedExpression 接口。 此接口用于实现 IDebugExpression2::EvaluateSync 和执行 IDebugExpression2::EvaluateAsync 评估。
要求
标头:msdbg.h
命名空间:Microsoft.VisualStudio.Debugger.Interop
程序集:Microsoft.VisualStudio.Debugger.Interop.dll