2013-04-16 135 views
2

我的一个程序停在某个位置(没有例外,似乎也没有崩溃),但我不知道那个位置。不是建立一个断点(这意味着你已经需要知道事情发生的位置),是否有可能获得哪一条代码行作为最后一个执行的信息?我正在使用Eclipse,这可能在调试视图中有点可能吗?跟踪代码执行?

想到像分步代码执行这样的事情,除了我不想单击一百万次,而是Eclipse或其他工具将为我执行此操作。

感谢您的任何提示!

+0

当你编程似乎停止/挂起时,你也可以考虑采用线程转储 - 这可能也会对你有所帮助。 – Fergus

+0

你的意思是jstack工具吗?我试过了,但它没有显示在另一个线程中抛出的异常? –

回答

1

enter image description here

我面临同样的问题。在绿色箭头/三角形的右侧有一个“暂停”按钮(两个垂直的黄色条 - 见图右上方),这会使您在调试器中停下来。在识别部分代码之前,您可能需要仔细查看调试堆栈。

这对我非常有用 - 我在一个正则表达式的灾难性回溯(可能需要几年才能终止!),我绝对不会猜到这一点。

[如果你没有,你需要在调试程序的角度来看看启动按钮。任何断点]

+0

虽然吉姆是第一个回答,我喜欢详细的答案。当然,谢谢大家! –

0

在Eclipse中,如果您在调试UI中单击“挂起”按钮,您可以暂停一个线程或整个虚拟机。您可能会遇到某种类似的等待,并且可能必须沿着堆栈跟踪找到调用正在等待的服务的代码行。

0

正如其他人所说,Eclipse有暂停按钮。

但是,老式的方式是增加一个System.out.println("No problem so far at line 'x' ")报表的负载并手动追踪错误。