SymSetOptions 函数 (dbghelp.h)
设置选项掩码。
语法
DWORD IMAGEAPI SymSetOptions(
[in] DWORD SymOptions
);
参数
[in] SymOptions
符号选项。 零是一个有效值,表示所有选项都已关闭。 使用 OR 运算符组合选项值以形成有效的选项值。 下面是有效的值。
Value | 含义 |
---|---|
|
允许使用与绝对地址一起存储的符号。 大多数符号存储为模块基部的 RVA。 DbgHelp 将它们转换为绝对地址。 有些符号存储为绝对地址。 它们具有非常专用的用途,通常不使用。
DbgHelp 5.1 及更早版本: 不支持此值。 |
|
允许使用没有地址的符号。 默认情况下,DbgHelp 筛选掉没有地址的符号。 |
|
在按地址搜索符号或枚举符号时,请勿搜索公共符号,除非它们在全局符号中或当前范围内未找到。 此选项对 SYMOPT_PUBLICS_ONLY不起作用。
DbgHelp 5.1 及更早版本: 不支持此值。 |
|
所有符号搜索均不区分大小写。 |
|
通过 OutputDebugString 或 SymRegisterCallbackProc64 回调函数传递调试输出。 |
|
在进行需要加载符号的引用之前,不会加载符号。 这是使用符号处理程序的最快、最有效的方法。 |
|
禁用符号路径中符号服务器存储的自动检测,即使没有“SRV*”指定,也保持与以前行为的兼容性。
DbgHelp 6.6 及更早版本: 不支持此值。 |
|
不要加载不匹配的 .pdb 文件。 如果所有其他操作都失败,请不要加载导出符号。 |
|
当存在介质故障(例如驱动器中没有介质)时,不显示系统对话框。 相反,失败以无提示方式发生。 |
|
如果同时存在未压缩文件和压缩文件,请优先使用压缩文件。 此选项适用于慢速连接。 |
|
符号存储在默认下游存储的根目录中。
DbgHelp 6.1 及更早版本: 不支持此值。 |
|
加载 .pdb 文件时,忽略图像标头的 CodeView 记录中的路径信息。 |
|
忽略映像目录。
DbgHelp 6.1 及更早版本: 不支持此值。 |
|
如果用户在没有有效路径的情况下调用 SymSetSearchPath,请不要使用 _NT_SYMBOL_PATH 指定的路径。
DbgHelp 5.1: 不支持此值。 |
|
在 64 位 Windows 上进行调试时,包括任何 32 位模块。 |
|
禁用检查以确保文件 (.exe、.dbg.或 .pdb) 是正确的文件。 而是加载找到的第一个文件。 |
|
加载行号信息。 |
|
包含符号分隔符“::”的所有 C++ 修饰符号将被“__”替换。 此选项适用于无法处理分析真实 C++ 符号名称的调试器。 |
|
如果无法读取模块标头,则加载模块的符号时,不要在图像中搜索符号路径。
DbgHelp 5.1: 不支持此值。 |
|
防止从符号服务器提示验证。 |
|
不要在 publics 表中搜索符号。 此选项效果不大,因为全局表中有公共符号的副本。
DbgHelp 5.1: 不支持此值。 |
|
防止在调用方跨多个模块检查符号时加载符号。 仅检查已加载符号的模块。 |
|
从符号存储覆盖下层存储。
DbgHelp 6.1 及更早版本: 不支持此值。 |
|
请勿使用私有符号。 早期 Windows 版本附带的 DbgHelp 版本仅支持公共符号;此选项提供与此限制的兼容性。
DbgHelp 5.1: 不支持此值。 |
|
DbgHelp 不会加载 SymSrv 以外的任何符号服务器。 SymSrv 不会使用 _NT_SYMBOL_PATH 中指定的下游存储。 设置此标志后,无法清除它。
DbgHelp 6.0 和 6.1: 可以清除此标志。 DbgHelp 5.1: 不支持此值。 |
|
所有符号都以未修饰的形式显示。
此选项对全局或本地符号没有影响,因为它们是未修饰的存储。 此选项仅适用于公共符号。 |
返回值
函数返回当前选项掩码。
备注
当应用程序使用库时,选项值可以更改任意次数。 选项更改会影响将来对符号处理程序的所有调用。
若要获取当前选项掩码,请调用 SymGetOptions 函数。
所有 DbgHelp 函数(例如此函数)都是单线程的。 因此,从多个线程调用此函数可能会导致意外行为或内存损坏。 若要避免这种情况,必须将多个线程中的所有并发调用同步到此函数。
示例
有关示例,请参阅 初始化符号处理程序。
要求
目标平台 | Windows |
标头 | dbghelp.h |
Library | Dbghelp.lib |
DLL | Dbghelp.dll |
可再发行组件 | DbgHelp.dll 5.1 或更高版本 |