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.