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