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


IDiaSession::findChildrenExByRVA

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

Синтаксис

HRESULT findChildrenExByRVA (
   IDiaSymbol*       parent,
   SymTagEnum        symtag,
   LPCOLESTR         name,
   DWORD             compareFlags,
   DWORD             rva,
   IDiaEnumSymbols** ppResult
);

Параметры

parent

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

symtag

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

name

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

compareFlags

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

rva

[in] Указывает RVA.

ppResult

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

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

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

Пример

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

IDiaEnumSymbols* pEnum;
pSession->findChildrenExByRVA( pFunc, SymTagData, szVarName, nsCaseSensitive, rva, &pEnum );

См. также