Visual Studio 2013 F10 / F11不会返回到调用函数的位置?

时间:2014-03-01 08:52:12

标签: c# debugging visual-studio-2013

我在VS2013 C#代码中调试时遇到问题。 因此,在调试(例如在0级)以进入功能(级别1)时,我按 F11 。然后我按 F10 来运行该功能。我在等待的函数结束时按 F10 ,我将返回到我按下 F11 的地方。

但它不起作用。如果还有一个函数的调用(在0级)它将进入它,如果没有 - 将产生与按 F5 相同的效果。所以现在步入0级的唯一机会就是设置一个断点。

此外,按 Shift + F11 也不起作用。

有什么想法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我见过几次这样的事情。当您的PDB /符号/某些代码与代码不同步时,或者代码的某些部分是本机代码(或优化代码!)并且您在反汇编代码和托管代码之间切换时,有时会发生这种情况。在我的情况下,当发生这种情况时,几乎总是看起来IDE无法正确地跟踪“不是你的代码”(即优化的框架部分)并且步入第一个可能未被优化的部分。

现在,通常,清洁和重建有所帮助。但是,并非总是如此。我记得我曾经在一些具有多个AppDomains和三个工作进程的复杂设置上工作过,所有这些都在同步调试之下 - 清理没有帮助,其他的事情也没有,但我不记得是什么。反正这很奇怪。

然而,所有这些都是罕见的案例。在过去的几年里,我已经看过他们6到7次了。是的,那很少见。是的,这也涵盖了多个VS版本。干净和重建没有帮助的情况是单一的。因此 - 尝试清洁。

最后一句话 - 取决于你的情况和IDE装置的拧紧程度,'清洁'有时候并不真正干净。如果清理确实有帮助,请再次“清理”并手动删除所有binobj文件。

这都是猜测和随意的想法,但也许会有所帮助。祝你好运!