0

导致 VisualStudio 调试器“无休止地旋转”或挂起的可重现已知状态、条件或请求是什么?

(重新措辞,因为下面的原始问题被搁置 - 请考虑搁置问题的决定,因为它是可重现的,并且它不像调试器会捕获并拒绝设置断点的“错字”那么简单它知道它无法处理的其他情况。)在尝试使用带有条件断点的调试器时,是否有其他人观察到 VisualStudio“无休止地旋转”?我等了超过 5 分钟,一个 cpu 核心“固定”在“我的应用程序中发生了一些事情”。在此期间,visualstudio 使用了超过 75% 的一个 cpu 内核,其中大约 2% 或 3% 被报告为被应用程序使用。暂停似乎没有任何效果。

奇怪的是,在我禁用条件断点后,应用程序开始正常运行并显示登录屏幕。然后我能够重新启用条件断点并继续使用调试器并激活条件断点。

4

1 回答 1

1

看起来 VisualStudio 2012 更新 4 的调试器/ide 没有警告或知道如果该变量接受断点所在行上的赋值结果,则它无法处理评估变量的条件断点。

例如:

public static class MyTest
{
    public static bool DoTesting = true;
}

在 DoTesting 设置为 true 的行上设置条件断点并使用条件 MyTest.DoTesting == true 显然会混淆 VisualStudio 的调试器,以至于它会旋转并且永远不会运行您的其余代码。点击“暂停”按钮不会停止在条件语句行,因为您期望它只是“灰显”“暂停”按钮。我认为他们应该拒绝创建条件断点或抱怨它(就像它无法处理的其他条件一样。)请注意,无论是初始分配还是重新分配值的行,都会发生这种情况结果。

于 2014-01-17T22:08:05.243 回答