IDebugMethodField::EnumLocals

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

Syntaxe

HRESULT EnumLocals(
    IDebugAddress*     pAddress,
    IEnumDebugFields** ppLocals
);
int EnumLocals(
    IDebugAddress        pAddress,
    out IEnumDebugFields ppLocals
);

Parametry

pAddress
[v] Objekt IDebugAddress představující adresu ladění, který vybere kontext nebo obor, ze kterého se mají získat místní hodnoty.

ppLocals
[out] 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.

Návratová hodnota

V případě úspěchu vrátí S_OK nebo vrátí S_FALSE, pokud nejsou žádné místní hodnoty. V opačném případě vrátí kód chyby.

Poznámky

Vyčíslí se pouze proměnné definované v rámci bloku, který obsahuje danou adresu ladění. Pokud jsou potřeba všechny místní hodnoty včetně všech místních hodnot generovaných kompilátorem, zavolejte metodu EnumAllLocals.

Metoda může obsahovat více kontextů oborů nebo bloků. Například následující metoda contrived obsahuje tři obory, dva vnitřní bloky a samotný text 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;
    }
}

Objekt IDebugMethodField představuje func samotnou metodu. Volání metody EnumLocals s IDebugAddress nastavenou na adresu vrátí například Inner Scope 1 výčet obsahující temp1 proměnnou .

Viz také