Symbol Options

许多选项可用于控制符号的加载和使用方式。 可以通过多种方式设置这些选项。

下表列出了这些符号选项:

Flag Option Name 调试器中的默认值 DBH 中的默认值

0x1

SYMOPT_CASE_INSENSITIVE

On

On

0x2

SYMOPT_UNDNAME

On

On

0x4

SYMOPT_DEFERRED_LOADS

On

Off

0x8

SYMOPT_NO_CPP

Off

Off

0x10

SYMOPT_LOAD_LINES

在 KD 和 CDB 中关闭

在 WinDbg 中打开

On

0x20

SYMOPT_OMAP_FIND_NEAREST

On

Off

0x40

SYMOPT_LOAD_ANYTHING

Off

Off

0x80

SYMOPT_IGNORE_CVREC

Off

Off

0x100

SYMOPT_NO_UNQUALIFIED_LOADS

Off

Off

0x200

SYMOPT_FAIL_CRITICAL_ERRORS

On

Off

0x400

SYMOPT_EXACT_SYMBOLS

Off

On

0x800

SYMOPT_ALLOW_ABSOLUTE_SYMBOLS

Off

On

0x1000

SYMOPT_IGNORE_NT_SYMPATH

Off

Off

0x2000

SYMOPT_INCLUDE_32BIT_MODULES

Off

Off

0x4000

SYMOPT_PUBLICS_ONLY

Off

Off

0x8000

SYMOPT_NO_PUBLICS

Off

Off

0x10000

SYMOPT_AUTO_PUBLICS

On

On

0x20000

SYMOPT_NO_IMAGE_SEARCH

On

Off

0x40000

SYMOPT_SECURE

Off

Off

0x80000

SYMOPT_NO_PROMPTS

在 KD 和 CDB 中打开

在 WinDbg 中关闭

Off

0x80000000

SYMOPT_DEBUG

Off

Off

更改符号选项设置

.symopt (设置符号选项) 命令可用于更改或显示符号选项设置。 In addition, a number of command-line parameters and commands are available to change these settings; these are listed in the individual SYMOPT_XXX sections.

You can also control all the settings at once with the -sflagscommand-line option. This option can be followed with a decimal number, or with a hexadecimal number prefixed by 0x. 建议使用十六进制,因为符号标志按这种方式正确对齐。 请谨慎使用此方法,因为它设置整个位域,并将覆盖所有符号处理程序默认值。 For example, -sflags 0x401 will not only turn on SYMOPT_EXACT_SYMBOLS and SYMOPT_CASE_INSENSITIVE, but will also turn off all the other options that normally are on by default!

当启动这些程序时,总标志位的默认值在 WinDbg 中0x30237,在 CDB 和 KD 中0xB0227,并在 DBH 工具中0x10C13,而无需任何与符号相关的命令行选项。

SYMOPT_CASE_INSENSITIVE

此符号选项会导致所有搜索符号名称不区分大小写。

此选项在所有调试器中默认处于打开状态。 Once the debugger is running, it can be turned on or off by using .symopt+0x1 or .symopt-0x1, respectively.

默认情况下,此选项在 DBH 中处于打开状态。 运行 DBH 后,可以使用 symopt +1 或 symopt -1 分别打开或关闭它。

SYMOPT_UNDNAME

此符号选项会导致显示公共符号名称时取消编码,并导致搜索符号名称忽略符号修饰。 无论此选项是否处于活动状态,都永远不会修饰专用符号名称。 有关符号名称修饰的信息,请参阅 公共符号和专用符号

此选项在所有调试器中默认处于打开状态。 Once the debugger is running, it can be turned on or off by using .symopt+0x2 or .symopt-0x2, respectively.

默认情况下,此选项在 DBH 中处于打开状态。 如果使用 -d 命令行选项,则会将其关闭。 运行 DBH 后,可以使用 symopt +2 或 symopt -2 分别打开或关闭它。

SYMOPT_DEFERRED_LOADS

此符号选项称为 延迟符号加载延迟符号加载。 当它处于活动状态时,在加载目标模块时,实际上不会加载符号。 相反,调试器会根据需要加载符号。 有关详细信息,请参阅 延迟符号加载

此选项在所有调试器中默认处于打开状态。 在 CDB 和 KD 中,-s 命令行选项将关闭此选项。 It can also be turned off in CDB by using the LazyLoad variable in the tools.ini file. Once the debugger is running, this option can be turned on or off by using .symopt+0x4 or .symopt-0x4, respectively.

默认情况下,此选项在 DBH 中处于关闭状态。 运行 DBH 后,可以使用 symopt +4 或 symopt -4 分别打开或关闭它。

SYMOPT_NO_CPP

此符号选项关闭C++翻译。 When this symbol option is set, :: is replaced by __ in all symbols.

默认情况下,此选项在所有调试器中处于关闭状态。 可以使用 -snc 命令行选项激活它。 Once the debugger is running, it can be turned on or off by using .symopt+0x8 or .symopt-0x8, respectively.

默认情况下,此选项在 DBH 中处于关闭状态。 运行 DBH 后,可以使用 symopt +8 或 symopt -8 分别打开或关闭它。

SYMOPT_LOAD_LINES

此符号选项允许从源文件读取行号信息。 必须启用此选项才能使源调试正常工作。

在 KD 和 CDB 中,此选项默认处于关闭状态;在 WinDbg 中,此选项默认处于打开状态。 在 CDB 和 KD 中,-lines 命令行选项将打开此选项。 Once the debugger is running, it can be turned on or off by using .symopt+0x10 or .symopt-0x10, respectively. 也可以使用 .lines(切换源行支持) 命令将其打开和关闭。

默认情况下,此选项在 DBH 中处于打开状态。 运行 DBH 后,可以使用 symopt +10 或 symopt -10 分别打开或关闭它。

SYMOPT_OMAP_FIND_NEAREST

当代码经过优化且预期位置没有符号时,此选项会导致使用最近的符号。

此选项在所有调试器中默认处于打开状态。 Once the debugger is running, it can be turned on or off by using .symopt+0x20 or .symopt-0x20, respectively.

默认情况下,此选项在 DBH 中处于打开状态。 运行 DBH 后,可以使用 symopt +20 或 symopt -20 分别打开或关闭它。

SYMOPT_LOAD_ANYTHING

当符号处理程序尝试匹配符号时,此符号选项可以减少符号处理程序的挑剔。

默认情况下,此选项在所有调试器中处于关闭状态。 Once the debugger is running, it can be turned on or off by using .symopt+0x40 or .symopt-0x40, respectively.

默认情况下,此选项在 DBH 中处于关闭状态。 运行 DBH 后,可以使用 symopt +40 或 symopt -40 分别打开或关闭它。

SYMOPT_IGNORE_CVREC

此符号选项会导致符号处理程序在搜索符号时忽略加载的图像标头中的 CV 记录。

默认情况下,此选项在所有调试器中处于关闭状态。 可以使用 -sicv 命令行选项激活它。 Once the debugger is running, it can be turned on or off by using .symopt+0x80 or .symopt-0x80, respectively.

默认情况下,此选项在 DBH 中处于关闭状态。 运行 DBH 后,可以使用 symopt +80 或 symopt -80 分别打开或关闭它。

SYMOPT_NO_UNQUALIFIED_LOADS

此符号选项禁用符号处理程序自动加载模块。 设置此选项并调试器尝试匹配符号时,它只会搜索已加载的模块。

此选项可用作防止误用符号名称的防御。 通常,错误键入的符号将导致调试器在搜索所有卸载的符号文件时暂停。 如果此选项处于活动状态,则在加载的模块中找不到错误键入的符号,然后搜索将终止。

默认情况下,此选项在所有调试器中处于关闭状态。 可以使用 -snul 命令行选项激活它。 Once the debugger is running, it can be turned on or off by using .symopt+0x100 or .symopt-0x100, respectively.

默认情况下,此选项在 DBH 中处于关闭状态。 运行 DBH 后,可以使用 symopt +100 或 symopt -100 分别打开或关闭它。

SYMOPT_FAIL_CRITICAL_ERRORS

此符号选项会导致禁止显示文件访问错误对话框。

如果此选项关闭,在符号加载过程中遇到的文件访问错误(如“驱动器未就绪”)将导致出现对话框。 如果此选项处于打开状态,则会取消这些框,并且所有访问错误都会收到“失败”响应。

此选项在所有调试器中默认处于打开状态。 可以使用 -sdce 命令行选项停用它。 Once the debugger is running, it can be turned on or off by using .symopt+0x200 or .symopt-0x200, respectively.

默认情况下,此选项在 DBH 中处于关闭状态。 运行 DBH 后,可以使用 symopt +200 或 symopt -200 分别打开或关闭它。

SYMOPT_EXACT_SYMBOLS

此符号选项会导致调试器对所有符号文件执行严格评估。

如果此选项处于启用,即使是符号文件与符号处理程序预期之间的轻微差异也会导致忽略符号。

默认情况下,此选项在所有调试器中处于关闭状态。 可以使用 -ses 命令行选项激活它。 Once the debugger is running, it can be turned on or off by using .symopt+0x400 or .symopt-0x400, respectively.

-failinc 命令行选项还会打开SYMOPT_EXACT_SYMBOLS。 此外,如果要调试用户模式小型转储或内核模式微型转储,-failinc 将阻止调试器加载无法映射其映像的任何模块。

默认情况下,此选项在 DBH 中处于打开状态。 运行 DBH 后,可以使用 symopt +400 或 symopt -400 分别打开或关闭它。

SYMOPT_ALLOW_ABSOLUTE_SYMBOLS

此符号选项允许 DbgHelp 读取存储在内存中绝对地址的符号。 在绝大多数情况下不需要此选项。

默认情况下,此选项在所有调试器中处于关闭状态。 Once the debugger is running, it can be turned on or off by using .symopt+0x800 or .symopt-0x800, respectively.

默认情况下,此选项在 DBH 中处于打开状态。 运行 DBH 后,可以使用 symopt +800 或 symopt -800 分别打开或关闭它。

SYMOPT_IGNORE_NT_SYMPATH

此符号选项会导致调试器忽略符号路径和可执行映像路径的环境变量设置。

默认情况下,此选项在所有调试器中处于关闭状态。 可以使用 -sins 命令行选项激活它。 However, it cannot be controlled by .symopt once the debugger is running, because the environment variables are only read at startup.

默认情况下,此选项在 DBH 中处于关闭状态,在所有情况下,DBH 都会忽略此选项。

SYMOPT_PUBLICS_ONLY

此符号选项会导致 DbgHelp 忽略专用符号数据,并仅搜索公共符号表以获取符号信息。 这会模拟 DbgHelp 的行为,然后再添加对这些类型的支持。 请参阅 公共符号和专用符号

默认情况下,此选项在所有调试器中处于关闭状态。 Once the debugger is running, it can be turned on or off by using .symopt+0x4000 or .symopt-0x4000, respectively.

默认情况下,此选项在 DBH 中处于关闭状态。 如果使用 -d 命令行选项,则会打开该选项。 运行 DBH 后,可以使用 symopt +4000 或 symopt -4000 分别打开或关闭它。

SYMOPT_NO_PUBLICS

此符号选项可防止 DbgHelp 搜索公共符号表。 这可以使符号枚举和符号搜索更快。 如果只关注搜索速度,则SYMOPT_AUTO_PUBLICS选项通常优于此选项。 有关公共符号表的信息,请参阅 公共符号和专用符号

默认情况下,此选项在所有调试器中处于关闭状态。 Once the debugger is running, it can be turned on or off by using .symopt+0x8000 or .symopt-0x8000, respectively.

默认情况下,此选项在 DBH 中处于关闭状态。 运行 DBH 后,可以使用 symopt +8000 或 symopt -8000 分别打开或关闭它。

SYMOPT_AUTO_PUBLICS

此符号选项会导致 DbgHelp 仅搜索 .pdb 文件中的公共符号表作为最后手段。 如果在搜索专用符号数据时发现任何匹配项,则不会搜索公共符号。 这提高了符号搜索速度。

此选项在所有调试器中默认处于打开状态。 可以使用 -sup 命令行选项停用它。 Once the debugger is running, it can be turned on or off by using .symopt+0x10000 or .symopt-0x10000, respectively.

默认情况下,此选项在 DBH 中处于打开状态。 如果使用 -d 命令行选项,则会将其关闭。 运行 DBH 后,可以分别使用 symopt +10000 或 symopt -10000 打开或关闭它。

当加载符号时,此符号选项可防止 DbgHelp 在磁盘中搜索映像的副本。

此选项在所有调试器中默认处于打开状态。 Once the debugger is running, it can be turned on or off by using .symopt+0x20000 or .symopt-0x20000, respectively.

默认情况下,此选项在 DBH 中处于关闭状态。 运行 DBH 后,可以分别使用 symopt +20000 或 symopt -20000 打开或关闭它。

SYMOPT_SECURE

(Kernel mode only) This symbol option indicates whether Secure Mode is active.

安全模式在所有调试器中默认处于关闭状态。 可以使用 -secure 命令行选项激活它。 If the debugger is running, is in dormant mode, and has not established any Debugging Servers, Secure Mode can be turned on by using .symopt+0x40000 or .secure (Activate Secure Mode).

默认情况下,此选项在 DBH 中处于关闭状态。 运行 DBH 后,可以使用 symopt +40000 或 symopt -40000 分别打开或关闭它。

安全模式在激活后永远无法关闭。

SYMOPT_NO_PROMPTS

此符号选项禁止来自代理服务器的身份验证对话框。 这可能会导致 SymSrv 无法访问 Internet 上的符号存储。

有关详细信息,请参阅 防火墙和代理服务器

在 KD 和 CDB 中,此选项默认处于打开状态;在 WinDbg 中,此选项默认处于关闭状态。 Once the debugger is running, it can be turned on or off by using .symopt+0x80000 or .symopt-0x80000, respectively, followed by the .reload (Reload Module) command. 还可以通过使用 !sym 提示关闭!sym 提示 扩展命令来打开和关闭它,后跟 .reload (重载模块) 命令。

默认情况下,此选项在 DBH 中处于关闭状态。 运行 DBH 后,可以分别使用 symopt +80000 或 symopt -80000 打开或关闭它。

-SYMOPT_DEBUG

此符号选项打开 干扰符号加载。 这指示调试器显示有关其搜索符号的信息。

加载每个符号文件时,将显示每个符号文件的名称。 如果调试器无法加载符号文件,它将显示一条错误消息。 .pdb 文件的错误消息将显示在文本中。 .dbg 文件的错误消息将以错误代码的形式显示;这些代码在 winerror.h 文件中进行了说明。

如果仅加载图像文件以恢复符号标头信息,也会显示该文件。

默认情况下,此选项在所有调试器中处于关闭状态。 可以使用 -n 命令行选项激活它。 Once the debugger is running, it can be turned on or off by using .symopt+0x80000000 or .symopt-0x80000000, respectively. It can also be turned on and off by using the !sym noisy and !sym quiet extension commands.

Note This option should not be confused with noisy source loading -- that is controlled by the .srcnoisy (Noisy Source Loading) command.

默认情况下,此选项在 DBH 中处于关闭状态。 可以使用 -n 命令行选项激活它。 运行 DBH 后,可以分别使用 symopt +800000000 或 symopt -800000000 打开或关闭它。 还可以使用详细打开和关闭命令来打开和关闭它。