我如何使用PDB文件

我听说使用PDB文件可以帮助诊断发生崩溃的位置。
我的基本理解是,你给Visual Studio的源文件,PDB文件和崩溃信息(从沃森博士?)
有人可以解释一下这是如何工作/涉及到什么? (谢谢!)

生成项目时会生成PDB文件。 它们包含有关Visual Studio可以解释的构build的二进制文件的信息。

当程序崩溃并生成崩溃报告时,Visual Studio就能够获取该报告,并通过应用程序的PDB文件将其链接回源代码。 PDB文件必须由生成崩溃报告的相同二进制文件构build!

我们遇到了一些问题。

  • 正在debugging崩溃报告的计算机需要将源与构build二进制文件的计算机的path相同。
  • 发布版本通常会优化到无法查看对象成员variables状态的程度

如果有人知道如何击败前者,我将不胜感激。

PDB文件将程序集的MSIL映射到原始源代码行。 这意味着,如果将与程序集一起编译的PDB放在与程序集相同的目录中,则exception堆栈跟踪将具有原始源文件中位置的名称和行。 没有PDB文件,您将只能看到堆栈跟踪每个级别的类和方法的名称。

您应该考虑设置符号服务器并将PDB文件编入索引到您的源代码控制系统。 我刚刚经过这个过程,我们的产品,它工作得很好。 您不必担心使用二进制文件提供PDB文件,也不必在debugging转储文件时获取适当的源代码。

约翰·罗宾斯的书: http ://www.amazon.com/Debugging-Microsoft-NET-2-0-Applications/dp/0735622027/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1222366012&sr= 8-1

在这里找一些示例代码来生成小型转储(不必局限于崩溃后分析 – 您可以在代码中随时生成它们而不会崩溃): http : //www.codeproject.com/KB /debug/postmortemdebug_standalone1.aspx