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