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


Функция SymEnumSymbolsEx (dbghelp.h)

Перечисляет все символы в процессе.

Синтаксис

BOOL IMAGEAPI SymEnumSymbolsEx(
  [in]           HANDLE                         hProcess,
  [in]           ULONG64                        BaseOfDll,
  [in, optional] PCSTR                          Mask,
  [in]           PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
  [in, optional] PVOID                          UserContext,
  [in]           DWORD                          Options
);

Параметры

[in] hProcess

Дескриптор процесса. Этот дескриптор должен быть ранее передан в функцию SymInitialize .

[in] BaseOfDll

Базовый адрес модуля. Если это значение равно нулю и Маска содержит восклицательный знак (!), функция выполняет поиск по модулям. Если это значение равно нулю и маска не содержит восклицательный знак, функция использует область, установленный функцией SymSetContext.

[in, optional] Mask

Строка с подстановочными знаками, указывающая имена перечисляемых символов. При необходимости текст может содержать подстановочные знаки "*" и "?".

Чтобы указать конкретный модуль или набор модулей, начинайте текст со строки с подстановочными знаками, указывающей модуль, а затем восклицательный знак. При указании модуля BaseOfDll игнорируется.

Значение Значение
Foo
Если значение BaseOfDll не равно нулю, SymEnumSymbols будет искать глобальный символ с именем foo.

Если значение BaseOfDll равно нулю, SymEnumSymbols будет искать локальный символ с именем foo в область, установленной последним вызовом функции SymSetContext.

Foo?
Если значение BaseOfDll не равно нулю, SymEnumSymbols будет искать глобальный символ, который начинается с "foo" и содержит один дополнительный символ, например "fool" и "foot".

Если baseOfDll равно нулю, то SymEnumSymbols будет искать символ, который начинается с "foo" и содержит один дополнительный символ, например "fool" и "foot". Поиск будет находиться в область, установленном последним вызовом функции SymSetContext.

foo*!bar

Символы SymEnumSymbols будут искать в каждом загруженном модуле, который начинается с текста foo для символа с именем "bar". Он может найти такие совпадения, как "foot!bar", "footlocker!bar" и "fool!bar".

*!*

SymEnumSymbols перечисляет каждый символ в каждом загруженном модуле.

[in] EnumSymbolsCallback

Функция обратного вызова SymEnumSymbolsProc , которая получает сведения о символах.

[in, optional] UserContext

Определяемое пользователем значение, передаваемое в функцию обратного вызова, или NULL. Этот параметр обычно используется приложением для передачи указателя на структуру данных, которая предоставляет контекст для функции обратного вызова.

[in] Options

Указывает возможные параметры.

Значение Значение
SYMENUM_OPTIONS_DEFAULT
1
Используйте параметры по умолчанию.
SYMENUM_OPTIONS_INLINE
2
Перечисление встроенных символов.

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

Если функция выполнена успешно, возвращается значение TRUE.

Если функция завершается сбоем, возвращается значение FALSE. Чтобы получить расширенные сведения об ошибке, вызовите Метод GetLastError.

Требования

Требование Значение
Целевая платформа Windows
Header dbghelp.h
Библиотека DbgHelp.lib
DLL DbgHelp.dll
Распространяемые компоненты DbgHelp.dll 6.2 или более поздней версии