Important
Visual Studio 2015 では、式エバリュエーターを実装するこの方法は非推奨になりました。 CLR 式エバリュエーターの実装の詳細については、 CLR 式エバリュエーター と マネージド式エバリュエーターのサンプルを参照してください。
実行は常に、メソッドのコンテキスト (包含メソッドまたは現在のメソッドとも呼ばれます) 内で実行されます。 実行が一時停止すると、Visual Studio はデバッグ エンジン (DE) を呼び出してローカル変数と引数の一覧を取得し、メソッドのローカルをまとめて呼び出します。 Visual Studio では、[ ローカル] ウィンドウ にこれらのローカルとその値が表示されます。
ローカルを表示するために、DE は EE に属する GetMethodProperty メソッドを呼び出し、評価コンテキスト 、つまりシンボル プロバイダー (SP)、現在の実行アドレス、およびバインダー オブジェクトを提供します。 詳細については、「 評価コンテキスト」を参照してください。 呼び出しが成功した場合、 IDebugExpressionEvaluator::GetMethodProperty メソッドは、現在の実行アドレスを含むメソッドを表す IDebugProperty2 オブジェクトを返します。
DE は EnumChildren を呼び出して IEnumDebugPropertyInfo2 オブジェクトを取得します。このオブジェクトは、ローカルのみを返すようにフィルター処理され、 列挙されてDEBUG_PROPERTY_INFO 構造体の一覧が生成されます。 各構造体には、ローカルの名前、型、および値が含まれています。 型と値は、表示に適した書式設定された文字列として格納されます。 名前、型、値は通常、[ ローカル] ウィンドウの 1 行にまとめて表示されます。
注
[クイック ウォッチ] ウィンドウと [ウォッチ] ウィンドウには、名前、値、および型の同じ形式の変数も表示されます。 ただし、これらの値は、の代わりに IDebugProperty2::EnumChildren を呼び出すことによって取得されます。
このセクションでは...
ローカルのサンプル実装 では、例を使用して、ローカルを実装するプロセスをステップ実行します。
関連コンテンツ
評価コンテキスト では、デバッグ エンジン (DE) が式エバリュエーター (EE) を呼び出すと、3 つの引数が渡されることを説明します。