symSearch 函数 (dbghelp.h)
搜索满足指定条件的 PDB 符号。
语法
BOOL IMAGEAPI SymSearch(
[in] HANDLE hProcess,
[in] ULONG64 BaseOfDll,
[in, optional] DWORD Index,
[in, optional] DWORD SymTag,
[in, optional] PCSTR Mask,
[in, optional] DWORD64 Address,
[in] PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
[in, optional] PVOID UserContext,
[in] DWORD Options
);
参数
[in] hProcess
进程的句柄。 此句柄必须以前传递给 SymInitialize 函数。
[in] BaseOfDll
模块的基址。 如果此值为零且 Mask 包含感叹号 (!) ,则函数将跨模块进行查找。 如果此值为零且 Mask 不包含感叹号,则函数将使用 SymSetContext 函数建立的范围。
[in, optional] Index
符号的唯一值。
[in, optional] SymTag
PDB 分类。 这些值在 Dbghelp.h 中的 SymTagEnum 枚举类型中定义。 有关说明,请参阅 PDB 文档。
[in, optional] Mask
一个通配符表达式,指示要枚举的符号的名称。 若要指定模块名称,请使用 !mod 语法。
[in, optional] Address
符号的地址。
[in] EnumSymbolsCallback
接收符号信息的 SymEnumSymbolsProc 回调函数。
[in, optional] UserContext
传递给回调函数的用户定义值,或 NULL。 应用程序通常使用此参数来传递指向为回调函数提供上下文的数据结构的指针。
[in] Options
控制此函数行为的选项。
Value | 含义 |
---|---|
|
在 .pdb 文件中包含所有符号和其他数据。
DbgHelp 6.6 及更早版本: 不支持此值。 |
|
仅搜索全局符号。 |
|
仅限内部使用。 |
|
从顶部递归以查找所有符号。 |
返回值
如果函数成功,则返回值为 TRUE。
如果函数失败,则返回值为 FALSE。 若要检索扩展的错误信息,请调用 GetLastError。
备注
所有 DbgHelp 函数(例如此函数)都是单线程的。 因此,从多个线程调用此函数可能会导致意外行为或内存损坏。 若要避免这种情况,必须将多个线程中的所有并发调用同步到此函数。
若要调用此函数的 Unicode 版本,请定义 DBGHELP_TRANSLATE_TCHAR。
要求
目标平台 | Windows |
标头 | dbghelp.h |
Library | Dbghelp.lib |
DLL | Dbghelp.dll |
可再发行组件 | DbgHelp.dll 6.2 或更高版本 |