pdb(程序数据库)有什么用?

问题描述 投票:0回答:6

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

这个.pdb文件的具体用途是什么?

c# debugging
6个回答
36
投票

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

如果您的应用程序在客户站点上出现问题,您可以从他们那里获取崩溃转储(使用 DrWatson),将其带回您的开发工作站并调试崩溃,调试器将使用符号文件与崩溃结合显示在许多情况下,您所要做的就是打开故障转储,调试器将直接带您到异常的源代码,并显示变量和线程。

这是它们的主要用途,当客户报告崩溃时,它们非常宝贵。不过,您需要了解有关使用它们的事情 - 它们仅对创建它们的构建有效,因此如果您重新编译,您的符号文件几乎毫无价值。

约翰罗宾斯有一篇很棒的文章为什么你会使用它们。


10
投票

John Robbins 最近写了一些关于 PDB 的非常棒的文章:

更新: 除了第一个链接外,其他链接均已损坏(Wintellect 被收购)。


2
投票

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


2
投票

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


1
投票

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


1
投票

好吧,你在标题中给了自己一个很大的线索。

这是 Visual Studio 调试应用程序所需的文件。

MSDN 页面 有更多信息。

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

© www.soinside.com 2019 - 2024. All rights reserved.