Windows 调试符号

符号文件保存各种数据,虽然对运行二进制文件来说并不重要,但可用于调试。 符号可以包括符号名称、符号类型(如果适用)、符号存储地址(或寄存器),以及任何父符号或子符号。 符号示例包括变量名称(本地和全局)、函数以及模块中的任何入口点。

调试器从位于本地文件系统的符号文件或从远程符号服务器加载符号中获取有关符号的信息。 使用符号服务器时,调试器会自动使用正确的符号文件版本来匹配目标中的模块。

查找 Windows 调试器符号

Windows 调试器的符号可通过 Internet 从公共符号服务器获取。 Windows 调试器包括 WinDbg(内核模式和用户模式调试器)、内核调试器(KD)、Microsoft控制台调试器(CDB)和Microsoft NT 符号调试器(NTSD)。

  • 对于用户模式调试,需要目标应用程序的符号。

  • 在进行内核模式调试时,需要用于调试的驱动程序符号以及 Windows 公共符号。

可以使用.symfix命令自动加载符号,该命令用于设置符号存储路径。 若要运行命令,需要在调试器运行时访问 Internet。 接下来,使用 .reload 命令 重新加载模块和符号

若要详细了解符号,包括对可移植 PDB 符号的 WinDbg 支持,请参阅以下文章:

调试时访问符号

以下文章介绍如何在调试会话期间访问符号。 它们还说明如何控制调试器的符号选项和符号匹配。

Tip

使用!sym noisy命令在加载符号时显示更多详细信息,以排查符号问题。 有关详细信息,请参阅 !sym 命令参考。 For more information, see the !sym command reference.