问题描述
我正在从客户调试故障转储的应用程序具有不同的发布周期。因此,并非所有版本都维护PDB。每当我们从客户那里获得故障转储时,PDB文件都不可用。因此,很难分析故障转储。我使用Windbg分析故障转储。 Windbg可以选择强制使用不匹配的PDB。但是使用此选项,分析不会给出正确的调用堆栈。那么,还有其他方法可以用来分析故障转储而不依赖于PDB文件吗?这是解决我当前问题所必需的。或者,如何在不依赖PDB文件的情况下使用windbg。
解决方法
TL; DR:如果删除PDB,请不要抱怨。磁盘空间很便宜。 1 TB硬盘价格为40€。如果PDB为您节省了一个小时的工作,那么值得购买一个。启用NTFS压缩,因为PDB压缩得很好。
每当我们从客户那里获得故障转储时,PDB文件都不可用
显然,这是错误的策略。您可以将PDB从即将发布的版本中删除,但不能将发布给客户的版本删除。
由于这个原因,很难分析崩溃转储。
是的,是的。那么,为什么让您的生活更加艰辛呢?保留PDB。
Windbg可以选择强制使用不匹配的PDB。但是使用此选项,分析将无法给出正确的调用堆栈。
是的,因为那是正确的PDB的目的。
那么还有其他方法可以用来分析故障转储而不依赖PDB文件吗?
是的,您可以在没有PDB的情况下进行操作。但是,正如您所说,这非常困难。
或者在不依赖PDB文件的情况下如何使用windbg。
同样,没有PDB,也可以调试。也许您可能会学习汇编代码。