0

为了正确调试客户发送给我的故障转储文件,我需要保存多少原始版本?显然我需要 PDB 我还需要其他东西吗?

(这将用于MiniDumpWriteDump由 dbghelp.dll 中的函数编写的故障转储文件。)

到目前为止,我一直保存整个构建文件夹。代码、PDB、.OBJ 文件、输出二进制文件,应有尽有。只是为了安全。我想尽量减少我保存的内容。但我无法找出我错过了什么的艰难方式。

实际的源代码将在源代码控制中并带有构建标签,因此我可以按标签提取并准确获取我以前构建的内容。在调试崩溃转储之前,我什至需要费心拉取源代码,还是只拥有 PDB 就足够了?

4

1 回答 1

0

从您的公司,PDB 应该是您所需要的。源代码也很有帮助,因为 PDB 提供了行号,您可以直接查看源代码。

通常,您不会复制 PDB,而是设置符号服务器。您也不会复制源代码,而是让源服务器管理它。Team Foundation Server (TFS) 两者都提供。但也有不需要 TFS 的替代方案

如果是.NET 程序,您还需要发生崩溃的客户端机器上的 SOS.dll 和 MSCORDACWKS.DLL。具有正确的版本号(请注意,可能安装了多个 .NET 框架)。

SOS 是启用 .NET 调试的 WinDbg 的调试扩展。MSCORDACWKS 是数据访问组件 (DAC),它知道内存中对象的外观。(MS = Microsoft,COR = .NET,WKS = 工作站)。有一个专用的 WinDbg 命令,.cordll.

于 2020-10-10T21:03:57.007 回答