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