Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Visual Studio 2012在调试期间随机超时?_.net_Visual Studio_Debugging_Visual Studio 2012_Visual Studio Debugging - Fatal编程技术网

.net Visual Studio 2012在调试期间随机超时?

.net Visual Studio 2012在调试期间随机超时?,.net,visual-studio,debugging,visual-studio-2012,visual-studio-debugging,.net,Visual Studio,Debugging,Visual Studio 2012,Visual Studio Debugging,我有一个VisualStudio2012项目,我对它进行了大量调试。每隔一段时间(每天多次),我就会进行调试,VisualStudio就会随机阻塞5-10秒。之后,我无法计算任何变量的值(通过变量它会说函数计算超时),单步执行将不起作用。我唯一能做的就是重新启动调试 但这是一个非常随机的问题。有时,当我调试了15分钟的长时间会话后,就会发生这种情况。。。有时它会发生在我碰到的第一个断点上。大多数时候,VisualStudio2012都能工作。。。只是偶尔我会遇到这个奇怪的问题。我不知道如何复制它

我有一个VisualStudio2012项目,我对它进行了大量调试。每隔一段时间(每天多次),我就会进行调试,VisualStudio就会随机阻塞5-10秒。之后,我无法计算任何变量的值(通过变量它会说
函数计算超时
),单步执行将不起作用。我唯一能做的就是重新启动调试

但这是一个非常随机的问题。有时,当我调试了15分钟的长时间会话后,就会发生这种情况。。。有时它会发生在我碰到的第一个断点上。大多数时候,VisualStudio2012都能工作。。。只是偶尔我会遇到这个奇怪的问题。我不知道如何复制它。它不仅与一种类型的对象相关联,甚至与一个项目也没有关联。而且,我可以在VS2010中打开同一个项目,我从来没有遇到过这种问题


这个问题在其他地方出现过吗?有人知道我可以做什么额外的配置来避免这种烦恼发生吗?

自从2005年以来的每一个Visual Studio版本(仍然有VS 2013更新3)以来,这个bug都让我抓狂!在我的例子中,在超时发生后,进程将无法正确继续(当前执行的线程死亡),并且当您想要分离VS时,它只允许您在终止进程时进行分离

我对这个问题没有真正的解决办法,但多年来我发现以下几点可能会对您有所帮助:

  • 这种错误更可能发生在大型复杂程序中
  • 多线程更容易发生这种情况
  • 在代码中执行的步骤越多,这种情况就越有可能发生。将断点放在某个位置,然后按F5键跳转到该位置比一路跳转到该位置要好
  • 当它发生时,不要试图在代码中再进一步,它会在任何地方随机跳转,然后随着下一步,线程死亡。在我的情况下,大多数时候只有重新启动程序才会有帮助
  • 尝试删除/禁用断点。活动断点越多,风险越高。条件断点尤其“危险”
  • 尽可能关闭所有带有监视变量的窗口(自动、局部、监视窗口)
  • 需要监视窗口时,从中删除所有不需要的变量。评估的变量越多,挂起的风险越高
  • 取消选中工具->选项->调试->常规->启用属性评估。。。这是防止此错误的最有效方法。但是,它使调试器对我来说相当不可用,所以我不想使用它
  • [仅适用于VS 2013:]尝试启用工具->选项->调试->常规->使用托管兼容性模式。这将使VS 2012中的调试行为更加健壮,至少在VS 2013中问题得到解决之前是如此

这是完全正常的事故。例如,COM接口非常常见。Watch表达式在单独的工作线程上求值,所以死锁总是在手表超时时出现。鉴于还没有人将VS2012标记为存在此问题,您确实需要尝试找到更好的诊断方法。