【问题标题】:PDB file from different versions of Visual Studio来自不同版本 Visual Studio 的 PDB 文件
【发布时间】:2010-01-19 08:37:32
【问题描述】:

我有一个用 VC++ 6 构建的旧 DLL 文件。现在我需要调查转储文件,但我没有可用的 PDB。 WinDbg 报告的堆栈跟踪也不准确。

是否可以使用更高版本的 Visual Studio 重建项目,即 2003、2005、2008,生成 PDB,并使用它来将地址映射到旧 DLL 中的符号?是否有类似 VC 6.0 的兼容模式来构建项目?

获得 VC++ 6 是一种选择,但看起来 VS6.0 已经从 MSDN 订阅者下载页面消失了:(

谢谢!

【问题讨论】:

  • 我什至不确定使用相同编译器的两个构建是否会生成相同的 PDB。
  • @MSalters:他们没有。但是 IDE 可以读取任何 PDB。
  • 不确定来自同一编译器的这些 PDB 是否仅在时间戳上有所不同?因为我的同事能够使用从同一编译器新创建的 PDB 文件获得正确的堆栈跟踪。无论如何谢谢你:}

标签: c++ visual-studio windbg pdb-files postmortem-debugging


【解决方案1】:

恐怕我认为答案是否定的:您需要尝试使用与生成转储文件的二进制文件完全相同的工具链来重建它。

根据我的经验,VS 对如何将转储文件与 pdb 文件进行匹配非常挑剔:在这些情况下,我唯一的运气就是使用 WinDbg(但你已经尝试过了)/

【讨论】:

  • 谢谢!我今天也尝试用 VS2003 重建我的项目,发现其他兼容性问题(过时的标题。)看起来我无论如何都必须使用 get VS6.0 :'(
猜你喜欢
  • 2012-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-03
  • 2016-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多