次の方法で共有


式エバリュエーター

式エバリュエーター (EE) によって実行時に言語の構文を調べ、変数と式を解析して評価すると、IDE が中断モードのときにユーザーがこれらを確認できるようになります。

式エバリュエーターを使用する

式は、次のように ParseText メソッドを使用して作成されます。

  1. デバッグ エンジン (DE) で、IDebugExpressionContext2 インターフェイスを実装します。

  2. デバッグ パッケージで、IDebugStackFrame2 インターフェイスから IDebugExpressionContext2 オブジェクトを取得した後、その IDebugStackFrame2::ParseText メソッドを呼び出して IDebugExpression2 オブジェクトを取得します。

  3. デバッグ パッケージで、EvaluateSync メソッドまたは EvaluateAsync メソッドを呼び出して、式の値を取得します。 IDebugExpression2::EvaluateAsync は、[コマンド] または [イミディエイト] ウィンドウから呼び出されます。 他のすべての UI コンポーネントでは、IDebugExpression2::EvaluateSync が呼び出されます。

  4. 式の評価結果は IDebugProperty2 オブジェクトです。これには、式の評価結果の名前、型、値が含まれています。

    EE では、式の評価時にシンボル プロバイダー コンポーネントからの情報が必要です。 シンボル プロバイダーによって、解析された式を識別して理解するために使用されるシンボリック情報が提供されます。

    非同期の式の評価が完了すると、DE からセッション デバッグ マネージャー (SDM) を介して非同期イベントが送信され、式の評価が完了したことが IDE に通知されます。 また、その後、評価の結果が IDebugExpression2::EvaluateSync メソッドの呼び出しから返されます。

実装に関するメモ

Visual Studio デバッグ エンジンでは、共通言語ランタイム (CLR) インターフェイスを使用して式エバリュエーターと通信することが想定されています。 その結果、Visual Studio デバッグ エンジンと連携する式エバリュエーターでは、CLR をサポートする必要があります (すべての CLR デバッグ インターフェイスの完全な一覧については、Windows Software Development Kit (SDK) の一部である debugref.doc を参照してください)。

関連項目