SymEnumSymbolsEx 函数 (dbghelp.h)

枚举进程中的所有符号。

语法

BOOL IMAGEAPI SymEnumSymbolsEx(
  [in]           HANDLE                         hProcess,
  [in]           ULONG64                        BaseOfDll,
  [in, optional] PCSTR                          Mask,
  [in]           PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
  [in, optional] PVOID                          UserContext,
  [in]           DWORD                          Options
);

参数

[in] hProcess

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

[in] BaseOfDll

模块的基址。 如果此值为零,并且 Mask 包含感叹号 (!) ,则函数将跨模块进行查找。 如果此值为零并且 Mask 不包含感叹号,则函数将使用 SymSetContext 函数建立的范围。

[in, optional] Mask

一个通配符字符串,指示要枚举的符号的名称。 文本可以选择性地包含通配符“*”和“?”。

若要指定特定模块或模块集,请以指定模块的通配符字符串开头文本,后跟感叹号。 指定模块时,将忽略 BaseOfDll

含义
Foo
如果 BaseOfDll 不为零,则 SymEnumSymbols 将查找名为“foo”的全局符号。

如果 BaseOfDll 为零,则 SymEnumSymbols 将在最近调用 SymSetContext 函数所建立的范围内查找名为“foo”的本地符号。

Foo?
如果 BaseOfDll 不为零,则 SymEnumSymbols 将查找一个全局符号,该符号以“foo”开头,然后包含一个额外的字符,例如“傻瓜”和“foot”。

如果 BaseOfDll 为零,则 SymEnumSymbols 将查找以“foo”开头并包含一个额外字符的符号,例如“傻瓜”和“foot”。 搜索将在最近一次调用 SymSetContext 函数所建立的范围内。

foo*!bar

SymEnumSymbols 将在每个加载的模块中查找以文本“foo”开头的符号“bar”。 它可以找到诸如“foot!bar”、“footlocker!bar”和“fool!bar”等匹配项。

*!*

SymEnumSymbols 将枚举每个已加载模块中的每个符号。

[in] EnumSymbolsCallback

接收符号信息的 SymEnumSymbolsProc 回调函数。

[in, optional] UserContext

传递给回调函数的用户定义值,或 NULL。 应用程序通常使用此参数将指针传递给为回调函数提供上下文的数据结构。

[in] Options

指示可能的选项。

含义
SYMENUM_OPTIONS_DEFAULT
1
使用默认选项。
SYMENUM_OPTIONS_INLINE
2
枚举内联符号。

返回值

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

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

要求

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