如何在java中编写虚拟条件断点

时间:2010-04-22 14:10:29

标签: java debugging

如果问题标题可能会误导你,我很抱歉,但我找不到合适的词来解释。

如果您使用过.NET,您会知道Assert类会在必要时自动唤醒并附加调试器,然后在Assert命令失败的情况下让调试器(Visual Studio)暂停在Assert命令中。 / p>

鉴于我正在运行java程序并连接了调试器,那么如何在没有手动设置断点的情况下让调试器在某些条件下中断?

我期待这样的事情:

void doSomeThing(String x){
   if (x==null) breakDebuggerNow();
}

2 个答案:

答案 0 :(得分:1)

如果使用eclipse,您可以通过上下文菜单(右键单击断点)在断点视图中修改断点(默认情况下在调试透视图中)。 您可以设置命中计数或启用条件。另一种选择是触发异常,单击带有'J!'的图标set选择一个特定的例外。

答案 1 :(得分:1)

据我所知,Java中没有这样的功能。如果没有附加,JVM不知道调试器。对于.Net,这是Windows在这方面做了一些帮助。但是,assert用于此类用途。它将引发不是Exception的java.lang.AssertionError,因此不应该由通常的catch es处理。如果您的调试器设置为处理未处理的异常(或者更确切地说是Throwable s),它将捕获这种情况。