Функция SymGetSymFromAddr (dbghelp.h)
Находит символ для указанного адреса.
Синтаксис
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 или более поздней версии |