Поделиться через


IDebugMethodField::EnumLocals

Создает перечислитель для выбранных локальных переменных метода.

Синтаксис

int EnumLocals(
    IDebugAddress        pAddress,
    out IEnumDebugFields ppLocals
);

Параметры

pAddress
[in] Объект IDebugAddress, представляющий адрес отладки, который выбирает контекст или область, из которого нужно получить локальные параметры.

ppLocals
[out] Возвращает объект IEnumDebugFields , представляющий список локальных параметров; в противном случае возвращает значение NULL, если локальные значения отсутствуют.

Возвращаемое значение

В случае успешного выполнения возвращает S_OK или возвращает S_FALSE, если локальные параметры отсутствуют. В противном случае возвращается код ошибки.

Замечания

Перечисляются только переменные, определенные в блоке, содержащие заданный адрес отладки. Если требуются все локальные параметры, включая все созданные компилятором локальные параметры, вызовите метод EnumAllLocals .

Метод может содержать несколько контекстов области или блоков. Например, приведенный ниже метод содержит три область, два внутренних блока и сам текст метода.

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

Объект IDebugMethodField представляет func сам метод. EnumLocals Вызов метода с идентификатором IDebugAddress, заданным для Inner Scope 1 адреса, возвращает перечисление, содержащее temp1 переменную, например.

См. также