Partilhar via


IDebugMethodField::EnumLocals

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

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

Parâmetros

  • pAddress
    [in] Um IDebugAddress objeto que representa o endereço de depuração que seleciona o contexto ou o escopo da qual obter os locals.

  • ppLocals
    [out] Retorna um IEnumDebugFields objeto que representa uma lista dos locais; Caso contrário, retorna um valor nulo se não houver nenhum locals.

Valor de retorno

Se bem-sucedida, retorna S_OK ou retorna S_FALSE se não houver nenhum locals. Caso contrário, retorna um código de erro.

Comentários

Somente as variáveis definidas dentro do bloco que contém o endereço determinado debug são enumeradas. Se forem necessários a todos os locais, incluindo qualquer locals gerado pelo compilador, chame o IDebugMethodField::EnumAllLocals método.

Um método pode conter vários contextos de escopo ou blocos. Por exemplo, o seguinte método imaginária contém três escopos, os dois blocos internos e o 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 IDebugMethodField de objeto representa o func método propriamente dito. Chamar o EnumLocals método com um IDebugAddress definido como o Inner Scope 1 endereço retorna uma enumeração contendo o temp1 variável, por exemplo.

Consulte também

Referência

IDebugMethodField

IDebugAddress

IEnumDebugFields

IDebugMethodField::EnumAllLocals