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 函数查找指定地址的符号。 将搜索地址所属的模块。 找到模块后,将搜索其符号表以查找匹配项。 找到符号后,符号信息将复制到调用方提供的 符号 缓冲区中。 调用方必须在调用 SymGetSymFromAddr64 之前正确分配符号缓冲区并在 IMAGEHLP_SYMBOL64 结构中填充所需的参数。
所有 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 |
标头 | dbghelp.h |
Library | Dbghelp.lib |
DLL | Dbghelp.dll |
可再发行组件 | DbgHelp.dll 5.1 或更高版本 |