Compartilhar via


IDebugMethodField::EnumLocals

Cria um enumerador para variáveis locais selecionadas do método.

Sintaxe

int EnumLocals(
    IDebugAddress        pAddress,
    out IEnumDebugFields ppLocals
);

Parâmetros

pAddress
[em] Um objeto IDebugAddress que representa o endereço de depuração que seleciona o contexto ou o escopo do qual obter os locais.

ppLocals
[saiu] Retorna um objeto IEnumDebugFields que representa uma lista de locais, caso contrário, retorna um valor nulo se não houver locais.

Valor de retorno

Se for bem-sucedido, retorna S_OK ou retorna S_FALSE se não houver moradores locais. Caso contrário, retornará um código de erro.

Comentários

Somente as variáveis definidas dentro do bloco que contém o endereço de depuração fornecido são enumeradas. Se todos os locais, incluindo quaisquer locais gerados pelo compilador, forem necessários, chame o método EnumAllLocals .

Um método pode conter vários contextos ou blocos de escopo. Por exemplo, o método inventado a seguir contém três escopos, os dois blocos internos e o próprio corpo do método.

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

O objeto IDebugMethodField representa o func próprio método. Chamar o método com um IDebugAddress definido para o EnumLocals Inner Scope 1 endereço retorna uma enumeração que contém a temp1 variável, por exemplo.

Confira também