IDebugMethodField::EnumLocals

Crea un enumerador para variables locales seleccionadas del método .

Sintaxis

int EnumLocals(
    IDebugAddress        pAddress,
    out IEnumDebugFields ppLocals
);

Parámetros

pAddress
[in] Objeto IDebugAddress que representa la dirección de depuración que selecciona el contexto o el ámbito desde el que se van a obtener las variables locales.

ppLocals
[out] Devuelve un objeto IEnumDebugFields que representa una lista de las variables locales; de lo contrario, devuelve un valor NULL si no hay ninguna configuración local.

Valor devuelto

Si se ejecuta correctamente, devuelve S_OK o devuelve S_FALSE si no hay ninguna configuración regional. De lo contrario, devuelve un código de error.

Comentarios

Solo se enumeran las variables definidas dentro del bloque que contiene la dirección de depuración especificada. Si se necesitan todas las variables locales incluidas las variables locales generadas por el compilador, llame al método EnumAllLocals .

Un método puede contener varios contextos o bloques de ámbito. Por ejemplo, el siguiente método contrived contiene tres ámbitos, los dos bloques internos y el propio cuerpo del 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;
    }
}

El objeto IDebugMethodField representa el func propio método. Al llamar al EnumLocals método con un IDebugAddress establecido en la Inner Scope 1 dirección, se devuelve una enumeración que contiene la temp1 variable, por ejemplo.

Consulte también