从一周前开始,我看到 VS2010 的一个非常烦人的行为:当我正在调试一个项目并且调试器在断点处停止时,Windows 冻结了将近十秒钟。我说“Windows 冻结”是因为在这段时间内鼠标和键盘都没用。
问题仅在我调试特定项目时发生,并且我在两台不同的机器上尝试过,结果相同。该项目是WPF,我确实在某一点上钩住了键盘(虽然不是鼠标),但该代码几个月没有被触及,而问题只有一周之久。
在这开始显示之前,我确实安装了 Telerik 的所有东西(试用版),所以我的第一个怀疑是 Telerik 的 VS 集成是罪魁祸首。我卸载了所有 Telerik VS 集成(“JustXXX”产品),但问题仍然存在。
我会非常感谢安倍的任何人提供关于这里可能发生的事情的提示。
谢谢
编辑 1: 我现在尝试构建一个新的解决方案,将所有项目移入其中,但问题仍然存在。
然后我卸载了 Telerik 的所有东西,只是为了确保,但这也没有效果。
下一个测试是在另一台机器上加载完全相同的解决方案,这确实有帮助。除了 reSHarper 6.1 之外,该机器没有与 VS2010 的第 3 方集成。
我还对这个问题进行了更多分析,典型的情况是,前几次断点被击中,UI 冻结了大约十秒钟。鼠标/键盘停止响应,但光标在代码编辑器中不断闪烁。接下来的几个断点也是如此,通常从一行跳到另一行会导致很长的延迟(尽管没有 UI 冻结)。
此外,如果在我的应用程序启动代码中很早就设置了第一个断点,我可能不会遇到问题。但是当我继续单步调试代码时,调试器会随着应用程序自身的初始化(在单独的线程中)变得更加迟缓。
正如我之前所说,这发生在单个应用程序中,因此代码显然以某种方式相关。
有没有人对调试器的运行方式有很好的了解?除了设置断点或用户从一行到另一行(刷新堆栈跟踪和监视窗口)时所需的明显步骤之外,后台发生了什么可能会冻结所有内容,这怎么可能?
我最后的希望是完全重新安装 VS2010,但我希望我能在需要该选项之前解决这个问题。