次の方法で共有


式エバリュエーターの実装戦略

Important

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

式エバリュエーター (EE) を迅速に作成する方法の 1 つは、まずローカル変数を [ローカル ] ウィンドウに表示するために必要な最小限のコードを実装することです。 ローカル ウィンドウの各行にローカル変数の名前、型、値が表示され、3 つすべてが IDebugProperty2 オブジェクトによって表されることを理解すると便利です。 ローカル変数の名前、型、および値は、IDebugProperty2 メソッドを呼び出すことによって、 オブジェクトから取得されます。 ローカル変数を [ ローカル ] ウィンドウに表示する方法の詳細については、「 ローカル変数の表示」を参照してください。

考察 (Discussion)

可能な実装シーケンスは、 IDebugExpressionEvaluator の実装から始まります。 ローカルを表示するには、 Parse メソッドと GetMethodProperty メソッドを実装する必要があります。 IDebugExpressionEvaluator::GetMethodPropertyを呼び出すと、メソッドを表すIDebugProperty2 オブジェクト (つまり、IDebugMethodField オブジェクト) が返されます。 メソッド自体は、[ ローカル ] ウィンドウには表示されません。

次に EnumChildren メソッドを実装する必要があります。 デバッグ エンジン (DE) は、このメソッドを呼び出して、IDebugProperty2::EnumChildrenguidFilter引数guidFilterLocalsPlusArgs渡すことによって、ローカル変数と引数の一覧を取得します。 IDebugProperty2::EnumChildren は EnumArgumentsEnumLocals を呼び出し、結果を 1 つの列挙型に結合します。 詳細については、「 ローカルを表示 する」を参照してください。