Visual Studio调试器 - 源代码搜索目录

5
我有一份崩溃转储文件(minidump,mdmp格式),对应于一个在另一台电脑上编译的可执行文件(本地x86代码)。我已经拥有了与崩溃转储文件相对应的pdb+exe文件,它们位于同一个目录下,调试器正确地识别出它们。pdb文件引用了一些在我的电脑上不可用的路径上的源代码(如E:\Project)。当我第一次打开崩溃转储文件时,调试器会要求我提供源代码的位置,我将其指向了我的电脑上的E:\B\Project。然而,一旦源代码窗口出现后,我意识到我的选择是错误的(源代码是属于另一个产品分支的)。我想指定调试器到正确的位置E:\D\Project,但是调试器没有再次询问我。对于所创建的崩溃转储文件,不存在任何解决方案、项目或opt文件。我已经搜索了注册表,但是没有找到E:\B\Project的任何信息。
如何为Visual Studio调试器设置/更改源代码文件夹?
2个回答

7
我找到了一种方法,不是很直观,但它可以工作:
  • 创建一个新的Visual C++项目和解决方案(它可以在任何地方创建,但在mdmp文件旁边似乎更为方便)
  • 或者使用您通常用于构建可执行文件的Visual C++项目和解决方案
  • Solution 中设置源代码位置(右键单击)> Common Properties > Debug Source Files > Directories containing source code
  • 使用 File > Open > File 打开崩溃转储文件,并选择 Dump Files 作为过滤器

注意:互联网上的崩溃转储分析指南可能会误导人,因为自2010年以来,dump文件不再作为项目打开,而是作为文件打开。请参见MSDN Crash Dump Analysis文章中R Nitzel的注释


在一个微软论坛上,我读到了一个建议,将二进制文件/程序集、.pdb/符号文件和源文件放在一起...不过我更喜欢你的方法。 - lolando
不知何故,对于我来说,现有的解决方案和MSVS社区2013更新5并不起作用 :( - mlt
@mlt 能否更具体些?是哪一步失败了,或者哪一步你无法执行?是否有错误,或者是什么“不起作用”? - Suma
@Suma 我倾向于认为这只是我的虚假警报。我有一个/GL标志,它使/Zi无效。我仍然需要检查一些东西来确认。一旦我按照所有步骤进行操作,它仍然没有显示源代码,而只显示反汇编。此外,我尝试创建一个NTFS联接点以匹配构建机器上的源位置。这让我思考/GL的问题。 - mlt

3

您应该能够通过以下方式指定包含源代码的目录:
Solution(右键单击)> 通用属性 > 调试源文件>包含源代码的目录


1
我打开了mdmp文件,IDE已经打开。没有解决方案,并且我看不到创建解决方案的选项。 - Suma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接