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


IDiaSession::findChildrenExByAddr

Извлекает все дочерние элементы указанного родительского идентификатора, соответствующего типу имени и символа, включая оптимизированные локальные значения, содержащие или ближайшие к указанному адресу.

Синтаксис

HRESULT findChildrenExByAddr (
   IDiaSymbol*       parent,
   SymTagEnum        symtag,
   LPCOLESTR         name,
   DWORD             compareFlags,
   DWORD             isect,
   DWORD             offset,
   IDiaEnumSymbols** ppResult
);

Параметры

parent

[in] Объект IDiaSymbol , представляющий родительский объект. Если этот родительский символ является функцией, модулем или блоком, возвращаются ppResultего лексические дочерние элементы. Если родительский символ является типом, возвращаются его дочерние элементы класса. Если этот параметр имеет значение NULL, symtag необходимо задать SymTagExe или SymTagNull, который возвращает глобальную область (.exe файл).

symtag

[in] Указывает тег символа извлекаемых дочерних элементов. Значения взяты из SymTagEnum перечисления Перечисления . Установите для SymTagNull извлечения всех дочерних элементов.

name

[in] Указывает имя извлекаемых дочерних элементов. Задайте для NULL всех дочерних элементов, которые нужно получить.

compareFlags

[in] Указывает параметры сравнения, применяемые к сопоставлению имен. Значения из NameSearchOptions перечисления можно использовать отдельно или в сочетании.

isect

[in] Указывает компонент раздела адреса.

offset

[in] Указывает компонент смещения адреса.

ppResult

[out] IDiaEnumSymbols Возвращает объект, содержащий список полученных дочерних символов.

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

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

Пример

В следующем примере показано, как найти локальные переменные функции pFunc , соответствующие имени szVarName и адресу isect:offset.

IDiaEnumSymbols* pEnum;
pSession->findChildrenExByAddr( pFunc, SymTagData, szVarName, nsCaseSensitive, isect, offset, &pEnum );

См. также