Sdílet prostřednictvím


IDebugMethodField::EnumLocals

Vytvoří enumerátor pro vybrané místní proměnné metody.

Syntaxe

int EnumLocals(
    IDebugAddress        pAddress,
    out IEnumDebugFields ppLocals
);

Parametry

pAddress
[v] IDebugAddress objekt představující ladicí adresu, která vybere kontext nebo obor, ze kterého chcete získat místní hodnoty.

ppLocals
[ven] Vrátí objekt IEnumDebugFields představující seznam místních hodnot. V opačném případě vrátí hodnotu null, pokud neexistují žádné místní hodnoty.

Vrácená hodnota

Pokud je úspěch úspěšný, vrátí S_OK nebo vrátí S_FALSE, pokud neexistují žádné místní hodnoty. V opačném případě vrátí kód chyby.

Poznámky

Výčet se zobrazí pouze proměnné definované v bloku, které obsahují danou ladicí adresu. Pokud jsou potřeba všechny místní hodnoty včetně všech místních prostředí generovaných kompilátorem, zavolejte EnumAllLocals metoda.

Metoda může obsahovat více kontextů nebo bloků oborů. Například následující contrived metoda obsahuje tři obory, dva vnitřní bloky a tělo metody samotné.

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 objekt představuje samotnou metodufunc. EnumLocals Volání metody pomocí IDebugAddress nastavené na Inner Scope 1 adresu vrátí výčet obsahující proměnnoutemp1, například.

Viz také