pdb(Program Debug DataBase)的用法是什么?

在编译库或应用程序(例如Visual Studio IDE中的控制台应用程序)时,在应用程序的Debug文件夹中,除了.dll或.exe之外,还会有一个扩展名为“.pdb”的文件。

这个.pdb文件的确切用法是什么?

PDB包含调试符号,因此您可以将已编译的二进制文件发送给客户,而不会将源代码算法和其他私有详细信息暴露给客户。

如果您的应用程序在客户站点出错,您可以从他们那里获得崩溃转储(使用DrWatson),将其带回您的开发工作站并调试崩溃,调试器将使用符号文件与崩溃一起向您展示源代码,数据结构等。在许多情况下,您所要做的就是打开崩溃转储,调试器将直接带您到exception的源代码,并向您展示变量和线程。

这是他们的主要用途,当客户报告崩溃时,它们是非常宝贵的。 关于使用它们你需要知道的事情 – 它们只对创建它们的构建有效,因此如果你重新编译,你的符号文件就会毫无价值。

John Robbins有一篇很好的文章,为什么要使用它们。

当您想要进行远程调试时,PDB也很有用。
将PDB与已安装的应用程序保持在一起,可以将Visual Studio远程连接到客户端的生产环境,并在必要时调试应用程序。

PDB允许调试应用程序,例如,当它们崩溃或者你有一个小型转储器时。 它们还允许您在将exception输出到日志记录时查找有关错误的更多详细信息(它们将使用行号提供更完整的堆栈跟踪,而不是仅显示发生错误的函数的名称)。

那么你已经给自己一个很大的线索了。

这是Visual Studio需要能够调试应用程序的文件。

此MSDN页面包含更多信息。

程序数据库(PDB)文件保存调试和项目状态信息,允许增量链接程序的Debug配置。

据我所知,它们包含调试信息,如行号,变量名等。