2011-08-01 17 views
2

我正在修改一个相当大的代码库,我正在调试过程中。我的代码没有终止,所以我没有得到一个堆栈跟踪。我试图用断点隔离故障代码,但不幸的是,它贯穿始终执行的部分(事务管理器),所以我点击死亡。此外,我得到的印象是,代码只在特定条件下破解,但大部分时间运行良好。如何在不终止的代码中获取最后执行的方法?

Intellij中有没有一种方法可以查看最后一个方法是/当前执行的方法?

谢谢

回答

3

您可以使用跟踪工具BTrace打印出您的程序中输入的每个方法的名称。 BTrace附带一个示例脚本,名为AllMethods,它就是这样做的。

你们所要做的就是启动你的java进程,然后针对JVM的PID运行BTrace脚本。它会打印输入的每种方法。如果你喜欢,你可以限制它到某些包。有关使用BTrace的更多信息,请查看tutorial

+0

与JVM的PID你的意思是进程号码,即你使用ps/top? – ib84

+0

@ ib84是的,您在'ps'中看到的进程ID – dogbane

1

使用分析器。它会给你一个正在执行哪些方法的细目,你的程序在每种方法上花了多少时间等等。从那里可以很容易地发现你的程序在哪里花费时间。

JProfiler就是一个例子。我认为它有一个功能齐全的试用版/演示版。

+0

感谢您的回答,但跟踪似乎是专门的解决方案 – ib84

相关问题