Java关键字启动调试器?

时间:2012-10-10 11:52:58

标签: java eclipse debugging

我很好奇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 个答案:

答案 0 :(得分:5)

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

检查以下

  1. FAQ How do I set a conditional breakpoint?
  2. Effective Debugging: Conditional Breakpoints

答案 1 :(得分:3)

创建实用程序类:

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

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

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

这种方法有两个好处:

  1. 将此代码保留在
  2. 中并没有什么坏处
  3. 如果要删除它,很容易找到(只搜索工作区中方法的所有引用)

答案 2 :(得分:2)

Java中没有这样的关键字可以启动eclipse调试器。记住Java不是用于Eclipse,而是另一种方式。如果你想要这样的话,可以在eclipse中使用条件断点,你可以通过eclipse的断点属性窗口设置它。

答案 3 :(得分:1)

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

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