SymEnumerateSymbols 函数 (dbghelp.h)

枚举指定模块的所有符号。

注意 提供此函数仅用于兼容性。 应用程序应使用 SymEnumSymbols,这更快、更强大。
 

语法

DBHLP_DEPRECIATED BOOL IMAGEAPI SymEnumerateSymbols(
  [in]           HANDLE                    hProcess,
  [in]           ULONG                     BaseOfDll,
  [in]           PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback,
  [in, optional] PVOID                     UserContext
);

参数

[in] hProcess

进程的句柄。 此句柄必须以前传递给 SymInitialize 函数。

[in] BaseOfDll

要为其枚举符号的模块的基址。

[in] EnumSymbolsCallback

接收符号信息的回调函数。 有关详细信息,请参阅 SymEnumerateSymbolsProc64

[in, optional] UserContext

用户定义的值或 NULL。 此值将传递给回调函数。 通常,应用程序使用此参数将指针传递到数据结构,该数据结构允许回调函数建立某种类型的上下文。

返回值

如果函数成功,则返回值为 TRUE

如果函数失败,则返回值为 FALSE。 若要检索扩展的错误信息,请调用 GetLastError

备注

SymEnumerateSymbols64 函数枚举指定模块的所有符号。 模块信息由 BaseOfDll 参数找到。 回调函数按符号调用一次,并传递每个符号的信息。

所有 DbgHelp 函数(例如此函数)都是单线程的。 因此,从多个线程调用此函数可能会导致意外行为或内存损坏。 若要避免这种情况,必须将多个线程中的所有并发调用同步到此函数。

此函数的 Unicode 版本 SymEnumerateSymbolsW64 在 Dbghelp.h 中定义如下。


BOOL
IMAGEAPI
SymEnumerateSymbolsW64(
    __in HANDLE hProcess,
    __in ULONG64 BaseOfDll,
    __in PSYM_ENUMSYMBOLS_CALLBACK64W EnumSymbolsCallback,
    __in_opt PVOID UserContext
    );

此函数取代 SymEnumerateSymbols 函数。 有关详细信息,请参阅 更新的平台支持SymEnumerateSymbols 在 Dbghelp.h 中定义如下。

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymEnumerateSymbols SymEnumerateSymbols64
#define SymEnumerateSymbolsW SymEnumerateSymbolsW64
#else
BOOL
IMAGEAPI
SymEnumerateSymbols(
    __in HANDLE hProcess,
    __in ULONG BaseOfDll,
    __in PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback,
    __in_opt PVOID UserContext
    );

BOOL
IMAGEAPI
SymEnumerateSymbolsW(
    __in HANDLE hProcess,
    __in ULONG BaseOfDll,
    __in PSYM_ENUMSYMBOLS_CALLBACKW EnumSymbolsCallback,
    __in_opt PVOID UserContext
    );
#endif

要求

   
目标平台 Windows
标头 dbghelp.h
Library Dbghelp.lib
DLL Dbghelp.dll
可再发行组件 DbgHelp.dll 5.1 或更高版本

另请参阅

DbgHelp 函数

SymEnumSymbols

SymEnumerateSymbolsProc64

SymInitialize