c# - WinDbg 不加载使用相同源创建但在与原始时间不同的时间构建的符号文件

标签 c# windbg symbols

我们发布了一个产品(C#.NET库),并没有存储库的pdb文件,假设我们总是可以使用相同的源代码生成符号文件。

现在,我们要分析正在使用我们的库的应用程序的崩溃转储(小型转储)文件。 由于我们没有存储 pdb 文件,我使用相同的源代码创建了一个新文件(在 SVN 中使用相同的标签)。然后我尝试了 WinDbg 并提供了 pdb 文件,但调试器不喜欢它。

由于源代码相同,我认为唯一的区别是构建完成的日期(我们使用同一台机器进行发布)。这真的会导致调试器无法加载符号文件吗? WinDbg 是如何识别符号文件的?

如果我确定符号文件与原始文件相同(日期除外),是否有办法强制 WinDbg 加载符号文件?

谢谢。

注意:如果我制作新版本并人为创建转储文件,符号将正确加载。

最佳答案

在不更改源的情况下重建将更改 pdb 文件。请参阅 John Robbins 的博客条目 PDB FILES: WHAT EVERY DEVELOPER MUST KNOW血淋淋的细节。

您需要告诉 WinDbg 不要对它准备加载的符号文件挑剔。来自(一位稍老的)WinDbg 帮助文件:

SYMOPT_LOAD_ANYTHING

此符号选项降低了符号处理程序在尝试匹配符号时的挑剔性。

此选项默认关闭。调试器运行后,可以分别使用 .symopt+0x40 或 .symopt-0x40 打开或关闭它。

关于c# - WinDbg 不加载使用相同源创建但在与原始时间不同的时间构建的符号文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1676040/

相关文章:

c - Windows逆向工程: find a specific Windows structure

c++ - Mac Lion 无法使用 'ar'、 'no symbols' 创建库

c++ - Very Sleepy 如何找到符号文件?

c# - Windows 8 XAML 不支持触​​发器?

c# - C# 中的 Monadic 理解语法

c# - 从一个 Controller 调用方法到另一个 Controller 时 session 为空...MVC

c# - PageMethods 或母版页中的替代方法?

.net - WPF中的win32窗口

windows - WinDbg 中的 Python Clik 模块

ubuntu - 如何为共享库调整 debian 包中的符号文件