如何在 VS2010 SL5 上进入调试模式时避免出现“无可用源”窗口
5 回答
在工具、选项、调试、常规页面中。检查是否启用了“启用 .NET Framework 源步进”,如果启用,请禁用。
我尝试了所有建议的修复;没有什么对我有用。经过几个小时的反复试验,我终于找到了解决方案。
事实证明,“无可用源”错误是由于 VS 调试器环境中的堆栈溢出造成的。
应该被单步执行的 C/C++ 代码函数(由 VS 调试器)正在使用一个变量,该变量已初始化为大小为几 MB 的堆栈数组。当我用堆分配替换它时,VS 成功地进入了代码。
这对我有用。
请注意,在我的情况下,实际代码(带有堆栈分配)在调试器中运行时没有堆栈溢出错误(如果我跳过 No source available 错误)。只是由于内部堆栈溢出,VS 的调试器无法进入另一个 C/CPP 文件中的特定函数。
希望这可以帮助。
你可以点击Shift+F11
退出,它会完成它所在的任何不可用的功能并在下一行停止(它也可能不可用,但继续使用Step Out
直到你得到你想要检查的代码。)
关于 VS2019,MSDocs 中提供了对该问题的描述。
对于必需的vcruntime和ucrt源文件,从已卸载的先前 VS 版本导入后可能会出现问题。
要防止 VS 使用旧目录,请找到解决方案属性页并导航到“调试源文件”对话框。单击勾选按钮以检查可以删除任何无效条目的条目。vcruntime和ucrt源代码应始终存在于目录中,并且“浏览以查找源代码”对话框顶部的路径应始终显示正确的路径。
就我而言,由于一个古老的驱动器错误,它提示输入“D”驱动器而不是“C”驱动器。此外,无法粘贴提供的路径以刷新视图,因此,如果不明智,则必须使用对话框从桌面或等效位置一直导航到所需位置。
这里有这个问题的扩展:
http://erwinmayer.com/labs/visual-studio-2010-extension-disable-no-source-available-tab/
但是根据我自己在找到这篇文章之前的经验(我在页面中但我试图自己修复它而不阅读文章)我已经解决了这个问题,只是通过接受一条确认消息说“选定的源文件与编译的程序集不同。您确定要使用此文件进行调试吗?”。但我不记得我究竟做了什么来得到这个消息。我认为有一个链接标签,我单击“无可用来源”窗口,然后出现确认消息,确认问题消失后。