重要
Visual Studio 2015 では、この方法での式エバリュエーターの実装は非推奨です。 CLR 式エバリュエーターの実装については、CLR 式エバリュエーターに関する記事とマネージド式エバリュエーターのサンプルに関する記事をご覧ください。
式エバリュエーター (EE) を迅速に作成する方法の 1 つは、[ローカル] ウィンドウにローカル変数を表示するために必要な最小限のコードを最初に実装することです。 [ローカル] ウィンドウの各行にはローカル変数の名前、型、値が表示され、3 つすべてが IDebugProperty2 オブジェクトによって表されることにご注意ください。 ローカル変数の名前、型、値は、IDebugProperty2
オブジェクトから GetPropertyInfo メソッドを呼び出して取得されます。 [ローカル] ウィンドウにローカル変数を表示する方法の詳細については、「ローカルの表示」を参照してください。
考察 (Discussion)
考えられる実装順序は、IDebugExpressionEvaluator の実装から始まります。 ローカルを表示するには、Parse および GetMethodProperty メソッドを実装する必要があります。 IDebugExpressionEvaluator::GetMethodProperty
を呼び出すと、メソッドを表す IDebugProperty2
オブジェクト (つまり、IDebugMethodField オブジェクト) が返されます。 メソッド自体は、[ローカル] ウィンドウに表示されません。
次に、EnumChildren メソッドを実装する必要があります。 デバッグ エンジン (DE) では、このメソッドを呼び出し、IDebugProperty2::EnumChildren
に guidFilterLocalsPlusArgs
の guidFilter
引数を渡して、ローカル変数と引数のリストを取得します。 IDebugProperty2::EnumChildren
では、EnumArguments と EnumLocals が呼び出され、その結果が単一の列挙に結合されます。 詳細については、「ローカルの表示」を参照してください。