1

我很好奇Java中是否有一个关键字可以让eclipse或IDE停止运行代码并在代码到达特定点时启动调试器。

我知道断点对于这个特定问题非常有用,但是我希望只在达到特定条件时才开始调试程序,而这个条件是程序不定期检查的条件,所以我必须编程它纯粹用于调试。

例如,

if(condition_is_met){
    //throw debugger and begin to step through here
}

我能想到的唯一其他方法是......

if(condition_is_met){
    System.out.println("Something"); //Then set a breakpoint here in Eclipse.
}

这看起来很混乱,这意味着我以后清理代码时可能会错过它。Java 是否有一个关键字,可能类似于 Javascript 的debugger关键字?

4

4 回答 4

6

它没有关键字,但您可以在 Eclipse 中指定条件调试。

检查下面

  1. FAQ 如何设置条件断点?
  2. 有效调试:条件断点
于 2012-10-10T11:58:12.850 回答
4

创建一个实用程序类:

public final class DebugHelper {
    public final static void breakpoint() {} // Set break point here
}

然后,您可以DebugHelper.breakpoint()在您希望 Eclipse 停止的所有地方使用。

在运行时,该方法最终会被 JIT 替换为空(当调试被禁用时),因此对于经常使用的代码是免费的。

这种方法有两个优点:

  1. 保留此代码并没有什么坏处
  2. 如果要删除,很容易找到(只需在工作区中搜索该方法的所有引用即可)
于 2012-10-10T12:03:27.717 回答
2

Java 中没有这样的关键字可以启动 eclipse 调试器。请记住,Java 不适合 Eclipse,但它正好相反。如果你想要这样的东西,在eclipse中使用条件断点,你可以通过eclipse的断点属性窗口设置。

于 2012-10-10T11:56:47.247 回答
1

Eclipse 有条件断点:使用编辑器左边距或 Debug 透视图的 Breakpoints 视图中断点上的上下文菜单,并选择断点的属性。在对话框中勾选Enable Condition,输入任意Java条件,如list.size()==0

(来自:http ://wiki.eclipse.org/FAQ_How_do_I_set_a_conditional_breakpoint%3F )

于 2012-10-10T11:59:15.050 回答