在得到之后,如何让Visual Studio询问源路径:"当前位置没有可用的源代码."

rod*_*wer 27 debugging visual-studio

有时,在调试模式下,我尝试在调用堆栈的某个级别上查看代码,并且出现错误:

当前位置没有可用的源代码.

我知道这意味着什么.如果我知道文件的位置,我如何将源文件提供给Visual Studio?

第一次,它给了我一个搜索浏览窗口,但此时我没有代码.当我从SVN下载并尝试(重启整个计算机后)再次访问代码时,我收到错误.

请不要解释我Visual Studio找不到文件,因为它提供了反汇编,我知道.我搜索了提供文件的选项.

Mar*_* Ba 32

在Visual Studio中(至少自2005年起),您必须检查解决方案属性:

在Solution Explorer中,右键单击Solution -> Properties -> Common Properties -> Debug Source Files.

这里有一个列表:"不要查找这些源文件:" - 从此列表中删除(所有)条目,然后VS应再次询问您的源路径.

这是VS 2013 Express的截图:

VS 2013调试源文件 - 设置


小智 5

对于我来说,以上步骤均无法在VS 2013中正常工作。

从解决方案->属性->通用属性->调试源文件列表中删除了不正确的源路径后,关闭Visual Studio的所有实例,每次我运行并进入代码时,我都会看到一个文件对话框弹出,并且走开,然后VS会再次进入错误的源位置。

经过无数次尝试,我使用了十六进制编辑器进行Unicode字符串搜索,发现问题所在的.suo文件中仍包含有问题的路径。删除该文件仍然无法解决问题。

最后,我再次打开解决方案,转到解决方案->属性->通用属性->调试源文件列表,并将不正确的源位置更改为正确的位置(即,而不是删除它)。然后,我按Ctrl + Shift + S保存所有内容,退出VS,再次启动VS并开始调试会话。这次它步进到正确的代码。

因此,如果上述方法不适合您,则VS 2013中存在一个问题,它会缓存阻止删除工作的路径,因此您必须更改现有路径。


Dam*_*ver 2

如果我没记错的话,如果您在第一次出现时未能找到源代码,这些模块将被添加到排除的模块列表中。

转到工具 -> 选项 -> 调试 -> 符号。在“所有模块,除非排除”下,有一个链接按钮“指定排除的模块”。打开该对话框,我想您会在其中找到您的模块。