次の方法で共有


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

Important

Visual Studio 2015 では、式エバリュエーターを実装するこの方法は非推奨になりました。 CLR 式エバリュエーターの実装の詳細については、 CLR 式エバリュエーターマネージド式エバリュエーターのサンプルを参照してください。

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

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

  • IDebugExpressionEvaluator

  • IDebugParsedExpression

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

  • IDebugObject

  • IDebugArrayObject

  • IDebugFunctionObject

  • IDebugPointerObject

  • IDebugManagedObject

  • IEnumDebugObjects

  • IDebugBinder

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

    SP は、情報の要求時に DE によって EE に渡されます。 SP は、次のインターフェイスとその派生物など、アドレスとフィールドを記述するインターフェイスを実行します。

  • IDebugSymbolProvider

  • IDebugAddress

  • IDebugField

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

このセクションでは...

式エバリュエーターの実装戦略では、EEの実装における3段階のプロセスを定義しています。