PSYM_ENUMSYMBOLS_CALLBACK回调函数 (dbghelp.h)

SymEnumerateSymbols64 函数一起使用的应用程序定义的回调函数。 它为每个枚举的符号调用一次,并接收符号信息。

PSYM_ENUMSYMBOLS_CALLBACK64PSYM_ENUMSYMBOLS_CALLBACK64W类型定义指向此回调函数的指针。 SymEnumerateSymbolsProc64 是应用程序定义的函数名称的占位符。

注意 提供此函数只是为了兼容性。 应用程序应使用 SymEnumSymbols
 

语法

PSYM_ENUMSYMBOLS_CALLBACK PsymEnumsymbolsCallback;

BOOL PsymEnumsymbolsCallback(
  [in]           PCSTR SymbolName,
  [in]           ULONG SymbolAddress,
  [in]           ULONG SymbolSize,
  [in, optional] PVOID UserContext
)
{...}

参数

[in] SymbolName

符号的名称。 如果将 SYMOPT_UNDNAME 选项与 SymSetOptions 函数一起使用,则可以取消修饰该名称。

[in] SymbolAddress

符号开头的虚拟地址。

[in] SymbolSize

符号的大小(以字节为单位)。 大小是计算得出的,实际上是最佳猜测值。 在某些情况下,该值可以为零。

[in, optional] UserContext

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

返回值

如果函数返回 TRUE,则枚举将继续。

如果函数返回 FALSE,则枚举将停止。

备注

调用应用程序按符号调用一次,直到枚举所有符号或枚举回调函数返回 FALSE 为止。

此回调函数取代 PSYM_ENUMSYMBOLS_CALLBACK 回调函数。 PSYM_ENUMSYMBOLS_CALLBACK 在 Dbghelp.h 中定义如下。

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define PSYM_ENUMSYMBOLS_CALLBACK PSYM_ENUMSYMBOLS_CALLBACK64
#define PSYM_ENUMSYMBOLS_CALLBACKW PSYM_ENUMSYMBOLS_CALLBACK64W
#else
typedef BOOL
(CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK)(
    __in PCSTR SymbolName,
    __in ULONG SymbolAddress,
    __in ULONG SymbolSize,
    __in_opt PVOID UserContext
    );

typedef BOOL
(CALLBACK *PSYM_ENUMSYMBOLS_CALLBACKW)(
    __in PCWSTR SymbolName,
    __in ULONG SymbolAddress,
    __in ULONG SymbolSize,
    __in_opt PVOID UserContext
    );
#endif

要求

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

另请参阅

DbgHelp 函数

SymEnumSymbols

SymEnumerateSymbols64