SymRegisterFunctionEntryCallback 函数 (dbghelp.h)

注册供 Alpha 计算机上的堆栈遍查过程使用的回调函数。

语法

BOOL IMAGEAPI SymRegisterFunctionEntryCallback(
  [in] HANDLE                     hProcess,
  [in] PSYMBOL_FUNCENTRY_CALLBACK CallbackFunction,
  [in] PVOID                      UserContext
);

参数

[in] hProcess

最初传递给 StackWalk64 函数的进程句柄。

[in] CallbackFunction

SymRegisterFunctionEntryCallbackProc64 回调函数。

[in] UserContext

用户定义的值或 NULL。 此值只是传递给回调函数。 通常,应用程序使用此参数来传递指向数据结构的指针,该数据结构允许回调函数建立一些上下文。

返回值

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

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

注解

SymRegisterFunctionEntryCallback64 函数允许应用程序注册一个回调函数,以供堆栈行走过程使用。 堆栈行走过程在找不到地址的函数表条目时调用已注册的回调函数。 在大多数情况下,堆栈遍查过程在包含地址的图像的函数表中查找函数表条目。 但是,在函数表条目不在图像中的情况下,此回调允许调试器提供来自另一个源的函数表条目。 例如,在 Alpha 计算机上运行时生成的代码可以定义动态函数表以支持异常处理和堆栈跟踪。

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

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

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymRegisterFunctionEntryCallback SymRegisterFunctionEntryCallback64
#else
BOOL
IMAGEAPI
SymRegisterFunctionEntryCallback(
    __in HANDLE hProcess,
    __in PSYMBOL_FUNCENTRY_CALLBACK CallbackFunction,
    __in_opt PVOID UserContext
    );
#endif

要求

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

另请参阅

DbgHelp 函数

StackWalk64

SymRegisterFunctionEntryCallbackProc64