有时候,在调试模式下,我会尝试在调用堆栈的某个级别上查看代码,并且出现错误:
当前位置没有可用的源代码。
我知道这意味着什么。如果我知道文件的位置,我如何将源文件提供给Visual Studio?
第一次,它给了我一个搜索浏览窗口,但此时我没有代码。当我从SVN下载并尝试(重启整个计算机后)再次访问代码时,我收到错误。
请不要解释我Visual Studio找不到文件,因为它提供了反汇编,我知道。我搜索了提供文件的选项。
答案 0 :(得分:32)
在Visual Studio中(至少自2005年起),您必须检查解决方案属性:
在Solution Explorer中,右键单击Solution -> Properties -> Common Properties -> Debug Source Files
。
这里有一个列表:“不要查找这些源文件:” - 从此列表中删除(所有)条目,然后VS应再次询问您的源路径。
以下是VS 2013 Express的截图:
答案 1 :(得分:5)
以上所有步骤均未在VS 2013中正常运行。
从解决方案中删除错误的源路径后 - >属性 - >共同属性 - >调试源文件列表,关闭Visual Studio的所有实例,每次运行并进入代码时,我会看到一个文件对话框会弹出并消失,然后VS会跳到错误的源位置再次。
经过多次尝试,我使用十六进制编辑器进行Unicode字符串搜索,发现有问题的路径仍在我的解决方案的.suo文件中。删除该文件仍然无法解决问题。
最后,我再次打开解决方案,转到解决方案 - >属性 - >共同属性 - >调试源文件列表并将错误的源位置更改为正确的源位置(即,而不是删除它)。我然后按Ctrl + Shift + S保存所有,退出VS,再次启动VS并启动调试会话。这次它走到了正确的代码。
因此,如果以上内容对您不起作用,则VS 2013中存在一个问题,即缓存阻止删除工作的路径,您必须更改现有路径。
答案 2 :(得分:2)
如果我没记错的话,如果您在第一次发现源代码时找不到任务,那么模块就会被添加到排除的模块列表中。
转到工具 - >选项 - >调试 - >符号。在“所有模块,除非排除”下,有一个链接按钮“指定排除的模块”。打开那个对话框,我想你会在那里找到你的模块。