Функция SymEnumerateSymbols (dbghelp.h)
Перечисляет все символы для указанного модуля.
Синтаксис
DBHLP_DEPRECIATED BOOL IMAGEAPI SymEnumerateSymbols(
[in] HANDLE hProcess,
[in] ULONG BaseOfDll,
[in] PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback,
[in, optional] PVOID UserContext
);
Параметры
[in] hProcess
Дескриптор процесса. Этот дескриптор должен быть ранее передан в функцию SymInitialize .
[in] BaseOfDll
Базовый адрес модуля, для которого необходимо перечислить символы.
[in] EnumSymbolsCallback
Функция обратного вызова, получающая сведения о символах. Дополнительные сведения см. в разделе SymEnumerateSymbolsProc64.
[in, optional] UserContext
Определяемое пользователем значение или NULL. Это значение передается в функцию обратного вызова. Как правило, этот параметр используется приложением для передачи указателя на структуру данных, которая позволяет функции обратного вызова установить определенный тип контекста.
Возвращаемое значение
Если функция выполняется успешно, возвращается значение TRUE.
Если функция завершается сбоем, возвращается значение FALSE. Чтобы получить расширенные сведения об ошибке, вызовите Метод GetLastError.
Комментарии
Функция SymEnumerateSymbols64 перечисляет все символы для указанного модуля. Сведения о модуле находятся с помощью параметра BaseOfDll . Функция обратного вызова вызывается один раз для каждого символа и передается информация для каждого символа.
Все функции DbgHelp, такие как эта, являются однопоточными. Поэтому вызовы из нескольких потоков к этой функции, скорее всего, приведут к непредвиденному поведению или повреждению памяти. Чтобы избежать этого, необходимо синхронизировать все параллельные вызовы из нескольких потоков в эту функцию.
Версия этой функции в Юникоде , SymEnumerateSymbolsW64 , определена в Dbghelp.h следующим образом.
BOOL
IMAGEAPI
SymEnumerateSymbolsW64(
__in HANDLE hProcess,
__in ULONG64 BaseOfDll,
__in PSYM_ENUMSYMBOLS_CALLBACK64W EnumSymbolsCallback,
__in_opt PVOID UserContext
);
Эта функция заменяет функцию SymEnumerateSymbols . Дополнительные сведения см. в разделе Обновленная поддержка платформы. SymEnumerateSymbols определяется следующим образом в Dbghelp.h.
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymEnumerateSymbols SymEnumerateSymbols64
#define SymEnumerateSymbolsW SymEnumerateSymbolsW64
#else
BOOL
IMAGEAPI
SymEnumerateSymbols(
__in HANDLE hProcess,
__in ULONG BaseOfDll,
__in PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback,
__in_opt PVOID UserContext
);
BOOL
IMAGEAPI
SymEnumerateSymbolsW(
__in HANDLE hProcess,
__in ULONG BaseOfDll,
__in PSYM_ENUMSYMBOLS_CALLBACKW EnumSymbolsCallback,
__in_opt PVOID UserContext
);
#endif
Требования
Целевая платформа | Windows |
Header | dbghelp.h |
Библиотека | Dbghelp.lib |
DLL | Dbghelp.dll |
Распространяемые компоненты | DbgHelp.dll 5.1 или более поздней версии |