次の方法で共有


ローカルの表示

重要

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

実行は常にメソッドのコンテキスト内で行われ、含むメソッドまたは現在のメソッドとも呼ばれます。 実行が一時停止すると、Visual Studio によって、デバッグ エンジン (DE) が呼び出され、ローカル変数と引数の一覧が取得されます。これらは、メソッドのローカルと総称されます。 Visual Studio で、これらのローカルとその値は、[ローカル] ウィンドウに表示されます。

ローカルを表示するために、DE によって、EE に属する GetMethodProperty メソッドが呼び出され、評価コンテキスト (つまり、シンボル プロバイダー (SP)、現在の実行アドレス、およびバインダー オブジェクト) が指定されます。 詳細については、「評価コンテキスト」を参照してください。 呼び出しが成功した場合、IDebugExpressionEvaluator::GetMethodProperty メソッドによって、現在の実行アドレスを含むメソッドを表す IDebugProperty2 オブジェクトが返されます。

DE によって、IEnumDebugPropertyInfo2 オブジェクトを取得するために EnumChildren が呼び出されます。このオブジェクトは、ローカルのみを返すようにフィルター処理され、DEBUG_PROPERTY_INFO 構造体のリストを生成するように列挙されます。 各構造体には、ローカルの名前、型、および値が含まれます。 型と値は、表示に適した書式設定された文字列として格納されます。 名前、型、および値は通常、[ローカル] ウィンドウの 1 行にまとめて表示されます。

Note

[クイックウォッチ] ウィンドウと [ウォッチ] ウィンドウにも、同じ形式の名前、値、および型で変数が表示されます。 ただし、それらの値を取得するには、IDebugProperty2::EnumChildren ではなく、GetPropertyInfo を呼び出します。

このセクションの内容

ローカルのサンプル実装」では、ローカルを実装するプロセスを段階的に実行するサンプルを使用しています。