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

时间:2011-05-18 12:44:37

标签: visual-studio debugging

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

  

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

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

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

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

3 个答案:

答案 0 :(得分:32)

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

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

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

以下是VS 2013 Express的截图:

VS 2013 Debug Source Files - Settings

答案 1 :(得分:5)

以上所有步骤均未在VS 2013中正常运行。

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

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

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

因此,如果以上内容对您不起作用,则VS 2013中存在一个问题,即缓存阻止删除工作的路径,您必须更改现有路径。

答案 2 :(得分:2)

如果我没记错的话,如果您在第一次发现源代码时找不到任务,那么模块就会被添加到排除的模块列表中。

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