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