次のセクションでは、デバッガーが中断モードであり、式の評価を実行する必要がある場合に発生するプロセスについて説明します。
式の評価のプロセス
式の評価に関係する基本的な手順は次のとおりです。
セッション デバッグ マネージャー (SDM) で IDebugStackFrame2::GetExpressionContext を呼び出して、式コンテキスト インターフェイス IDebugExpressionContext2 を取得します。
次に SDM は、解析する文字列を指定して IDebugExpressionContext2::ParseText を呼び出します。
ParseText が S_OK を返さない場合、エラーの理由が返されます。
-それ以外の場合-
ParseText が S_OK を返す場合、SDM は IDebugExpression2::EvaluateSync または IDebugExpression2::EvaluateAsync のいずれかを呼び出して、解析された式から最終的な値を取得できます。
IDebugExpression2::EvaluateSync
を使用する場合、指定されたコールバック インターフェイスは、評価の進行中のプロセスを伝達します。 最終的な値は、IDebugProperty2 インターフェイスで返されます。IDebugExpression2::EvaluateAsync
を使用する場合、指定されたコールバック インターフェイスは、評価の進行中のプロセスを伝達します。 評価が完了すると、EvaluateAsync はコールバックを通じて IDebugExpressionEvaluationCompleteEvent2 インターフェイスを送信します。 このイベント インターフェイスの GetResult を使用した結果が、最終的な値です。