Eclipse条件断点和全局变量



我有一个全局变量

static int debugNumber;

以及具有条件的断点

debugNumber > 1

其中检查了Suspend threadConditionalSuspend when 'true'。目前,如果我暂停程序的执行并将鼠标悬停在声明上,则显示的值为2。不过,这个断点并没有断开。

就我在谷歌和SEdebugNumber > 1上看到的情况而言,应该没问题。我做错了什么?

我们很清楚:这一行意味着:如果代码执行到达这一行(带有断点的行(,那么执行断点通常执行的操作:冻结线程(或者如果您已经将其配置为那样,并暂停所有其他线程,这不是默认设置(。然而,条件断点意味着:在像往常一样中断之前,请检查条件。如果条件为false,则不要执行任何操作。

条件断点的中断频率与正常断点一样高,甚至更低,从未如此频繁。

听起来你想要的是"断点"代码库中设置debugNumber变量的每一行,如果它被设置为2或更高的值。如果这是您想要的,请在debugNumber上制作一个"watch",并将该watch配置为中断执行。

如果这不是你想要的,那么,好吧,你在描述中没有犯任何错误,所以这是十亿件可能出错的事情之一:

  • 带有断点的行从未被命中
  • debugNumber在到达断点时为1或更小
  • 您使用"运行"来启动应用程序,而不是"调试"(几乎没有理由"运行"任何东西,总是选择"调试"(
  • eclipse中的全局"禁用所有断点"切换已被关闭。它(除非您更改了内容(在工具栏上:一个较大的"断点点"(蓝色圆圈(,上面有一个大斜线。这是一个切换按钮。它压进去了吗
  • Eclipse调试器已取消同步。如果发生这种情况,它会给你一个对话框,但这个对话框中的一个选项是"现在和将来忽略"(这是一个更简洁的文本,但这就是它的要点(。如果你按下这个键,它可以取消同步。调试视图会告诉您。如果您在eclipse运行时更改编译后的代码,或者更改源文件中的签名并在运行过程中保存源文件,则可能会发生这种情况
  • 还有很多东西

最新更新