Windows 调试的符号

符号文件包含大量的数据,这些数据在运行二进制文件时实际上并不需要,但在调试过程中很有用。

符号可以包括名称、类型(如果适用)、存储地址或寄存器以及任何父符号或子符号。 符号示例包括变量名(本地和全局)、函数以及模块的任何入口点。

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

可以通过 Internet 从公共符号服务器获取 Windows 调试程序的符号(WinDbg、KD、CDB、NTSD)。

提示

可以使用 .symfix(设置符号存储路径)命令自动加载符号,前提是在调试器运行时可以访问 Internet。 然后使用 .reload(重新加载模块)命令加载符号。

如果要执行用户模式调试,则需要目标应用程序的符号。 如果要执行内核模式调试,则需要要调试的驱动程序的符号以及 Windows 公共符号。

这些主题介绍如何在调试会话期间访问符号以及如何控制调试程序的符号选项和符号匹配。

Microsoft 公共符号服务器

Windows 符号程序包

Windows 调试器的符号路径

这些主题介绍符号的含义以及对可移植 PDB 符号的 WinDbg 支持。

符号和符号文件

公共和专用符号

可移植 PDB 符号

有关使用符号的其他详细信息,请参阅以下页面。

使用符号服务器

SymSrv 的高级用法

防火墙和代理服务器

符号语法和符号匹配

自定义符号存储和符号服务器

调试时的符号问题

如果你只是想要配置调试器,使其能够为你自己的程序和 Windows 访问符号,你可能会发现,阅读简要介绍的主题符号路径Microsoft 公共符号服务器会更快地实现这一目的。 使用 Use !sym noisy 命令,在加载符号时显示更多详细信息,以解决符号问题。