2

我有一个 Visual Studio 2012 项目,我做了很多调试。每隔一段时间(每天多次),我会进行调试,Visual Studio 会随机阻塞 5-10 秒。之后,我无法评估任何变量的值(通过它会说的变量function evaluation timed out)并且单步执行将不起作用。我唯一能做的就是重新开始调试。

这是一个非常随机的问题。有时它会在我调试了 15 分钟的长时间会话时发生……有时它会发生在我遇到的第一个断点上。大多数情况下,Visual Studio 2012 都能正常工作……只是时不时地我会遇到这个奇怪的问题。我不知道如何重现它。它不仅与一种类型的对象相关联,甚至也与一个项目相关联。另外,我可以在VS2010中打开同一个项目,我从来没有遇到过这种问题

这个问题在其他地方见过吗?有谁知道我可以做任何额外的配置来避免这种烦恼的发生?

4

1 回答 1

0

自从 2005 年以来的每个 Visual Studio 版本(仍然使用 VS 2013 Update 3),这个错误让我发疯了!在我的情况下,发生超时后,进程将无法正确继续(当前执行的线程死亡),当您想要分离 VS 时,它只允许您在终止进程时执行此操作。

我没有真正解决这个问题,但多年来我发现了以下可能对你有帮助的东西:

  • 大型复杂程序更容易出现此错误。
  • 多线程更容易发生。
  • 越是单步执行代码,就越有可能发生。在某处放置一个断点并按 F5 跳到那里比一直走到那个位置要好。
  • 当它发生时,不要尝试在代码中进一步,它会随机跳转到任何地方,然后在下一步中,线程死亡。就我而言,大多数时候只有重新启动程序会有所帮助。
  • 尝试删除/禁用断点。您拥有的活动断点越多,风险就越高。条件断点特别“危险”。
  • 尽可能尝试关闭所有带有监视变量的窗口(Autos、Locals、Watch 窗口)。
  • 当您需要监视窗口时,请从中删除所有不需要的变量。评估的变量越多,挂起的风险就越高。
  • 取消选中工具 -> 选项 -> 调试 -> 常规 -> 启用属性评估...这是防止此错误的最有效方法。但是,它使调试器对我来说相当不可用,所以我不想使用它。
  • [仅适用于 VS 2013:]尝试启用Tools -> Options -> Debugging -> General -> Use Managed Compatibility Mode。这将使我阅读的 VS 2012 中的调试行为可能更加健壮,至少在 VS 2013 中修复该问题之前。
于 2014-11-06T16:55:59.183 回答