SymInitialize

【勇芳软件工作室】汉化HomePreviousNext

SymInitialize函数初始化进程的符号处理程序。

BOOL SymInitialize(

IN HANDLE【hProcess】, 
IN LPSTR【UserSearchPath】, 
IN BOOL【fInvadeProcess】 
); 

参数

【hProcess】

要维护符号的过程句柄。如果应用程序是调试器,则使用正在调试的对象的进程句柄,否则GetCurrentProcess提供有效的进程句柄。句柄不用作真正的进程句柄,所以任何值都可以和下一个一样工作。对handle值的唯一限制是每次应用程序调用{??989796040}时都是唯一的限制。此外,如果【fInvadeProcess】标志为TRUE,则句柄【必须】为有效的进程标识。

【UserSearchPath】

由分号(;)分隔的路径或一系列路径,用于搜索符号文件。如果使用NULL值,则IMAGEHLP将尝试从以下来源形成符号路径:

*当前目录

*环境变量_NT_SYMBOL_PATH

*环境变量_NT_ALTERNATE_SYMBOL_PATH

*环境变量SYSTEMROOT

【fInvadeProcess】

如果此值为TRUE,则IMAGEHLP将枚举加载的进程模块,并为每个模块有效地调用SymLoadModule.在这种情况下,【hProcess】参数必须是有效的Win32进程句柄。

返回值

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

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

备注

SymInitialize函数用于初始化进程的符号处理程序。在符号处理程序的上下文中,进程是在收集符号信息时使用的方便对象。通常,调试器和其他需要加载被调试进程的符号的工具使用符号处理程序。

传递给SymInitialize的进程句柄可以是任何唯一的值,除非【fInvadeProcess】为TRUE。传递给SymInitialize 【必须】的值与传递给所有其他IMAGEHLP符号处理函数的值相同。它是IMAGEHLP用来识别呼叫者并找到正确的符号信息的过程句柄。调用配对函数SymCleanup【必须】取消分配与加载符号的进程相关联的所有资源。