计算表达式
表达式是从“自动”、“监视”、“快速监视”或“即时”窗口传递的字符串创建的。 计算表达式时,它将生成一个可打印字符串,其中包含变量或参数的名称和类型及其值。 此字符串显示在相应的 IDE 窗口中。
实现
当程序在断点停止时,将计算表达式。 表达式本身由 IDebugExpression2 接口表示,该接口表示已分析的表达式,该表达式已准备好在给定表达式计算上下文中进行绑定和计算。 堆栈帧通过实现 IDebugExpressionContext2 接口来确定调试引擎 (DE) 提供的表达式计算上下文。
给定用户字符串和 IDebugExpressionContext2 接口,调试引擎 (DE) 可以通过将用户字符串传递给 IDebugExpressionContext2::P arseText 方法来获取 IDebugExpression2 接口。 返回的 IDebugExpression2 接口包含已分析的表达式可供计算。
IDebugExpression2
通过接口,DE 可以使用 IDebugExpression2::EvaluateSync 或 IDebugExpression2::EvaluateAsync 通过同步或异步表达式计算获取表达式的值。 此值以及变量或参数的名称和类型将发送到 IDE 以供显示。 值、名称和类型由 IDebugProperty2 接口表示。
若要启用表达式计算,DE 必须实现 IDebugExpression2 和 IDebugExpressionContext2 接口。 同步和异步评估都需要实现 IDebugProperty2::GetPropertyInfo 方法。