PSYM_ENUMSYMBOLS_CALLBACK回调函数 (dbghelp.h)
与 SymEnumerateSymbols64 函数一起使用的应用程序定义的回调函数。 它为每个枚举的符号调用一次,并接收符号信息。
PSYM_ENUMSYMBOLS_CALLBACK64和PSYM_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 或更高版本 |