Udostępnij za pośrednictwem


IDebugMethodField::EnumLocals

Tworzy moduł wyliczający dla wybranych zmiennych lokalnych metody .

Składnia

int EnumLocals(
    IDebugAddress        pAddress,
    out IEnumDebugFields ppLocals
);

Parametry

pAddress
[in] Obiekt IDebugAddress reprezentujący adres debugowania, który wybiera kontekst lub zakres, z którego mają być uzyskiwane ustawienia lokalne.

ppLocals
[out] Zwraca obiekt IEnumDebugFields reprezentujący listę ustawień lokalnych. W przeciwnym razie zwraca wartość null, jeśli nie ma ustawień lokalnych.

Wartość zwracana

Jeśli operacja powiedzie się, zwraca S_OK lub zwraca S_FALSE, jeśli nie ma ustawień lokalnych. W przeciwnym razie zwraca kod błędu.

Uwagi

Wyliczane są tylko zmienne zdefiniowane w bloku zawierającym dany adres debugowania. Jeśli potrzebne są wszystkie ustawienia lokalne, w tym wszystkie lokalne generowane przez kompilator, wywołaj metodę EnumAllLocals .

Metoda może zawierać wiele kontekstów lub bloków określania zakresu. Na przykład następująca metoda contrived zawiera trzy zakresy, dwa bloki wewnętrzne i samą treść metody.

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;
    }
}

Obiekt IDebugMethodField reprezentuje samą metodę func . EnumLocals Wywołanie metody za pomocą elementu IDebugAddress ustawionego na Inner Scope 1 adres zwraca na przykład wyliczenie zawierające zmiennątemp1.

Zobacz też