中断模式下的表达式计算

以下部分介绍调试器处于中断模式并且必须执行表达式计算时发生的过程。

表达式计算过程

下面是计算表达式所涉及的基本步骤:

  1. 会话调试管理器 (SDM) 调用 IDebugStackFrame2::GetExpressionContext 以获取表达式上下文接口 IDebugExpressionContext2

  2. 然后,SDM 使用要分析的字符串调用 IDebugExpressionContext2::P arseText

  3. 如果 ParseText 未返回S_OK,则返回错误的原因。

    -否则-

    如果 ParseText 确实返回S_OK,则 SDM 可以调用 IDebugExpression2::EvaluateSyncIDebugExpression2::EvaluateAsync 从分析表达式获取最终值。

    • 使用 IDebugExpression2::EvaluateSync时,给定的回调接口将传达评估的持续过程。 最终值在 IDebugProperty2 接口中返回。

    • 使用 IDebugExpression2::EvaluateAsync时,给定的回调接口将传达评估的持续过程。 评估完成后,EvaluateAsync 会通过回调发送 IDebugExpressionEvaluationCompleteEvent2 接口。 使用此事件接口,最终值结果为 GetResult