2009-09-19 255 views
19

编译库或应用程序(例如Visual Studio IDE中的控制台应用程序)时,除应用程序的.dll或.exe以外,应用程序的Debug文件夹中还会有一个文件的扩展名为“.pdb” 。pdb's(Program Debug DataBase)的用法是什么?

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

回答

1

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

1

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

+0

你错了。见http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/08/31/correctly-creating-native-c-release-build-pdbs.aspx – 2009-09-19 17:46:41

+0

删除,实际上它应该是“定义DEBUG常量”选项。 – Botz3000 2009-09-19 18:05:41

1

嗯,你已经给自己在你的标题一大线索。

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

This MSDN page has more information。

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

9
29

PDBS包含调试符号,这样你就可以出货已编译的二进制给您的客户不会暴露你的源代码,算法和其他私人资料给他们。

如果您的应用在客户网站上出错,您可以从他们(使用DrWatson)获取故障转储,将其返回到您的开发工作站并调试崩溃,调试器将使用符号文件与崩溃向您展示源代码,数据结构等。在许多情况下,您只需打开故障转储,调试器就会直接引导您查看异常的源代码,并向您显示变量和线程。

这是它们的主要用途,它们在客户报告崩溃时非常有用。你需要知道的有关使用它们的东西 - 它们只对创建它们的版本有效,所以如果你重新编译,你的符号文件就会变得毫无价值。

约翰罗宾斯有an excellent article为什么你会使用它们。

2

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

相关问题