メソッドの選択されたローカル変数の列挙子を作成します。
構文
パラメーター
pAddress
[入力] ローカルの取得元のコンテキストまたはスコープを選択するデバッグ アドレスを表す IDebugAddress オブジェクト。
ppLocals
[出力] ローカルの一覧を表す IEnumDebugFields オブジェクトを返します。ローカルがない場合は null 値を返します。
戻り値
成功した場合は、S_OK を返します。ローカルがない場合は、S_FALSE を返します。 それ以外の場合はエラー コードを返します。
解説
指定されたデバッグ アドレスを含むブロック内で定義されている変数のみが列挙されます。 コンパイラによって生成されるローカルを含むすべてのローカルが必要な場合は、EnumAllLocals メソッドを呼び出します。
メソッドには、複数のスコープ コンテキストまたはブロックを含めることができます。 たとえば、次の工夫したメソッドには、2 つの内部ブロックとメソッド本体自体という 3 つのスコープが含まれています。
public void func(int index)
{
// Method body scope
int a = 0;
if (index == 1)
{
// Inner scope 1
int temp1 = a;
}
else
{
// Inner scope 2
int temp2 = a;
}
}
IDebugMethodField オブジェクトは、func
メソッド自体を表します。 IDebugAddress を Inner Scope 1
アドレスに設定して EnumLocals
メソッドを呼び出すと、たとえば temp1
変数を含む列挙が返されます。