次の方法で共有


式エバリュエーターを実装する

重要

Visual Studio 2015 では、この方法での式エバリュエーターの実装は非推奨です。 CLR 式エバリュエーターの実装については、CLR 式エバリュエーターに関する記事とマネージド式エバリュエーターのサンプルに関する記事をご覧ください。

式の評価は、デバッグ エンジン (DE)、シンボル プロバイダー (SP)、バインダー オブジェクト、および式エバリュエーター (EE) の間での複雑な相互関係です。 これら 4 つのコンポーネントは、1 つのコンポーネントによって実装され、別のコンポーネントによって使用されるインターフェイスによって接続されます。

EE により、文字列形式で DE から式が取得され、それが解析または評価されます。 EE では、DE によって使用される次のインターフェイスを実行します。

  • IDebugExpressionEvaluator

  • IDebugParsedExpression

    EE により、DE によって提供されるバインダー オブジェクトが呼び出され、シンボルとオブジェクトの値が取得されます。 EE では、DE によって実装される次のインターフェイスが使用されます。

  • IDebugObject

  • IDebugArrayObject

  • IDebugFunctionObject

  • IDebugPointerObject

  • IDebugManagedObject

  • IEnumDebugObjects

  • IDebugBinder

    EE により IDebugProperty2 が実行されます。 IDebugProperty2 により、ローカル変数、プリミティブ、または Visual Studio へのオブジェクトなど、式の評価結果を記述するための機構が提供されます。これにより、[ローカル][ウォッチ]、または [イミディエイト] ウィンドウに適切な情報が表示されます。

    EE から情報の要求があると、SP が DE によって与えられます。 SP により、次のインターフェイスやその派生物などのアドレスとフィールドを記述するインターフェイスが実行されます。

  • IDebugSymbolProvider

  • IDebugAddress

  • IDebugField

    EE では、これらのインターフェイスのすべてが使用されます。

このセクションの内容

式エバリュエーターの実装方法」では、式エバリュエーター (EE) 実装戦略の 3 段階のプロセスが定義されています。