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


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

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

Примечание Эта функция предоставляется только для обеспечения совместимости. Приложения должны использовать SymEnumSymbols, который быстрее и мощнее.
 

Синтаксис

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 или более поздней версии

См. также раздел

Функции DbgHelp

SymEnumSymbols

SymEnumerateSymbolsProc64

SymInitialize