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


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

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

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

Синтаксис

BOOL IMAGEAPI SymGetSymFromAddr(
  [in]            HANDLE           hProcess,
  [in]            DWORD            dwAddr,
  [out, optional] PDWORD           pdwDisplacement,
  [in, out]       PIMAGEHLP_SYMBOL Symbol
);

Параметры

[in] hProcess

Дескриптор процесса, который изначально был передан функции SymInitialize .

[in] dwAddr

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

[out, optional] pdwDisplacement

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

[in, out] Symbol

Указатель на структуру IMAGEHLP_SYMBOL64 .

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

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

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

Комментарии

Функция SymGetSymFromAddr64 находит символ для указанного адреса. Выполняется поиск модулей, к которому принадлежит адрес. При обнаружении модуля выполняется поиск совпадения в его таблице символов. При обнаружении символа сведения о символах копируются в буфер символов , предоставленный вызывающим объектом. Вызывающий объект должен правильно выделить буфер символов и заполнить необходимые параметры в структуре IMAGEHLP_SYMBOL64 перед вызовом SymGetSymFromAddr64.

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

Эта функция заменяет функцию SymGetSymFromAddr . Дополнительные сведения см. в разделе Обновленная поддержка платформы. SymGetSymFromAddr определяется в Dbghelp.h следующим образом.

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetSymFromAddr SymGetSymFromAddr64
#else
BOOL
IMAGEAPI
SymGetSymFromAddr(
    __in HANDLE hProcess,
    __in DWORD dwAddr,
    __out_opt PDWORD pdwDisplacement,
    __inout PIMAGEHLP_SYMBOL Symbol
    );
#endif

Требования

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

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

Функции DbgHelp

IMAGEHLP_SYMBOL64

SymFromAddr

SymInitialize