gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 14:43:38 26 4
gpt4 key购买 nike

我们发布了一个产品(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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com