我们发布了一个产品(C#.NET库)并没有存储库的pdb文件,假设我们总是可以使用相同的源代码生成符号文件.
现在,我们要分析正在使用我们的库的应用程序的崩溃转储(迷你转储)文件.由于我们没有存储pdb文件,因此我创建了一个使用相同源代码的新文件(在SVN中使用相同的标记).然后我尝试了WinDbg并提供了pdb文件,但是调试器不喜欢它.
由于源代码是相同的,我认为唯一的区别是构建完成的日期(我们使用相同的机器发布).这真的会导致调试器无法加载符号文件吗?WinDbg如何识别符号文件?
如果我确定符号文件与原始符号文件相同(日期除外),是否有办法强制WinDbg加载符号文件?
谢谢.
注意:如果我创建新版本并人为创建转储文件,则会正确加载符号.
在不更改源的情况下重建将更改pdb文件.请参阅John Robbins的博客文章PDB文件:每个开发人员都必须了解血淋淋的细节.
你需要告诉WinDbg对它准备加载的符号文件不那么挑剔.来自(稍微老一点)的WinDbg帮助文件:
SYMOPT_LOAD_ANYTHING
Run Code Online (Sandbox Code Playgroud)
此符号选项在尝试匹配符号时减少符号处理程序的挑剔.
默认情况下,此选项处于关闭状 调试器运行后,可以分别使用.symopt + 0x40或.symopt-0x40打开或关闭它.
| 归档时间: |
|
| 查看次数: |
2588 次 |
| 最近记录: |