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


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

Извлекает сведения о символах для указанного адреса.

Синтаксис

BOOL IMAGEAPI SymFromAddr(
  [in]            HANDLE       hProcess,
  [in]            DWORD64      Address,
  [out, optional] PDWORD64     Displacement,
  [in, out]       PSYMBOL_INFO Symbol
);

Параметры

[in] hProcess

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

[in] Address

Адрес, по которому должен находиться символ. Адрес не обязательно должен находиться на границе символа. Если адрес находится после начала символа и до конца символа, он будет найден.

[out, optional] Displacement

Смещение от начала символа или нуль.

[in, out] Symbol

Указатель на структуру SYMBOL_INFO , которая предоставляет сведения о символе. Имя символа имеет переменную длину; Поэтому этот буфер должен быть достаточно большим, чтобы вместить имя, хранящееся в конце структуры SYMBOL_INFO . Обязательно задайте для элемента MaxNameLen количество байтов, зарезервированных для имени.

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

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

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

Комментарии

Все функции DbgHelp, такие как эта, являются однопоточными. Таким образом, вызовы из нескольких потоков к этой функции, скорее всего, приведут к непредвиденному поведению или повреждению памяти. Чтобы избежать этого, необходимо синхронизировать все параллельные вызовы из нескольких потоков в эту функцию.

Чтобы вызвать версию юникода этой функции, определите DBGHELP_TRANSLATE_TCHAR.

Примеры

Пример см. в разделе Извлечение сведений о символах по адресу.

Требования

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

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

Функции DbgHelp

SYMBOL_INFO