表达式计算 (Visual Studio Debugging SDK)

在中断模式下,IDE 必须计算涉及多个程序变量的简单表达式。 若要完成计算,调试引擎 (DE) 必须解析并计算输入到 IDE 窗口之一的表达式。

表达式通过 IDebugExpressionContext2::ParseText 方法创建,并由生成的 IDebugExpression2 接口表示。

IDebugExpression2 接口由 DE 实现,并调用其 EvalAsync 方法向 IDE 返回 IDebugProperty2 接口,以便在 IDE 中显示表达式的计算结果。 IDebugProperty2::GetPropertyInfo 返回一个结构,用于将表达式的值放入观察窗口或局部变量窗口。

调试包或会话调试管理器 (SDM) 调用 IDebugExpression2::EvaluateAsyncEvaluateSync 来获取表示计算结果的 IDebugProperty2 接口。 IDebugProperty2 具有返回表达式的名称、类型和值的方法。 这些信息会显示在各种调试器窗口中。

使用表达式计算

若要使用表达式计算,必须实现 IDebugExpressionContext2::ParseText 方法和 IIDebugExpression2 接口的所有方法,如下表所示。

方法 说明
EvaluateAsync 异步计算表达式。
Abort 结束异步表达式计算。
EvaluateSync 同步计算表达式。

同步和异步计算需要实现 IDebugProperty2::GetPropertyInfo 方法。 异步表达式计算需要实现 IDebugExpressionEvaluationCompleteEvent2

另请参阅