次の方法で共有


主要な式エバリュエーター インターフェイス

重要

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

評価コンテキストと共に式エバリュエーター (EE) を記述する場合は、次のインターフェイスについて理解しておく必要があります。

インターフェイスの説明

  • IDebugAddress

    Getaddress という 1 つのメソッドがあり、現在の実行ポイントを表すデータ構造を取得します。 このデータ構造は、式を評価するためにデバッグ エンジン (DE) から EvaluateSync メソッドに渡される 3 つの引数のうちの 1 つです。 このインターフェイスは、通常、シンボル プロバイダーによって実装されます。

  • IDebugBinder

    Bind メソッドがあり、シンボルの現在の値を含むメモリ領域を取得します。 IDebugObject オブジェクトによって表される外側のメソッドと、IDebugField オブジェクトによって表されるシンボル自体の両方を指定すると、IDebugBinder::Bind からシンボルの値が返されます。 IDebugBinder は通常、DE によって実装されます。

  • IDebugField

    データ型を表します。 配列やメソッドなどのより複雑な型については、それぞれ派生の IDebugArrayFieldIDebugMethodField インターフェイスを使用します。 IDebugContainerField は、メソッドやクラスなどの他のシンボルを含むシンボルを表すもう 1 つの重要な派生インターフェイスです。 IDebugField インターフェイス (およびその派生) は、通常、シンボル プロバイダーによって実装されます。

    IDebugField オブジェクトを使用すると、シンボルの名前と型を検索できます。また、IDebugBinder オブジェクトと共に使用して、その値を検索することもできます。

  • IDebugObject

    シンボルの実行時の値の実際のビットを表します。 Bind では、シンボルを表す IDebugField オブジェクトを受け取り、IDebugObject オブジェクトを返します。 GetValue メソッドから、メモリ バッファー内のシンボルの値が返されます。 通常、DE により、メモリ内のプロパティの値を表すために、このインターフェイスが実装されます。

  • IDebugExpressionEvaluator

    このインターフェイスは、式エバリュエーター自体を表します。 重要なメソッドは Parse で、IDebugParsedExpression インターフェイスが返されます。

  • IDebugParsedExpression

    このインターフェイスは、評価の準備ができている解析済みの式を表します。 重要なメソッドは EvaluateSync で、式の値と型を表す IDebugProperty2 が返されます。

  • IDebugProperty2

    このインターフェイスは、値とその型を表し、式の評価の結果です。

関連項目