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 或更高版本

另请参阅

DbgHelp 函数

IMAGEHLP_SYMBOL64

SymFromAddr

SymInitialize