我有一个全局变量
static int debugNumber;
以及具有条件的断点
debugNumber > 1
其中检查了Suspend thread
、Conditional
和Suspend when 'true'
。目前,如果我暂停程序的执行并将鼠标悬停在声明上,则显示的值为2。不过,这个断点并没有断开。
就我在谷歌和SEdebugNumber > 1
上看到的情况而言,应该没问题。我做错了什么?
我们很清楚:这一行意味着:如果代码执行到达这一行(带有断点的行(,那么执行断点通常执行的操作:冻结线程(或者如果您已经将其配置为那样,并暂停所有其他线程,这不是默认设置(。然而,条件断点意味着:在像往常一样中断之前,请检查条件。如果条件为false,则不要执行任何操作。
条件断点的中断频率与正常断点一样高,甚至更低,从未如此频繁。
听起来你想要的是"断点"代码库中设置debugNumber
变量的每一行,如果它被设置为2或更高的值。如果这是您想要的,请在debugNumber
上制作一个"watch",并将该watch配置为中断执行。
如果这不是你想要的,那么,好吧,你在描述中没有犯任何错误,所以这是十亿件可能出错的事情之一:
- 带有断点的行从未被命中
- debugNumber在到达断点时为1或更小
- 您使用"运行"来启动应用程序,而不是"调试"(几乎没有理由"运行"任何东西,总是选择"调试"(
- eclipse中的全局"禁用所有断点"切换已被关闭。它(除非您更改了内容(在工具栏上:一个较大的"断点点"(蓝色圆圈(,上面有一个大斜线。这是一个切换按钮。它压进去了吗
- Eclipse调试器已取消同步。如果发生这种情况,它会给你一个对话框,但这个对话框中的一个选项是"现在和将来忽略"(这是一个更简洁的文本,但这就是它的要点(。如果你按下这个键,它可以取消同步。调试视图会告诉您。如果您在eclipse运行时更改编译后的代码,或者更改源文件中的签名并在运行过程中保存源文件,则可能会发生这种情况
- 还有很多东西