我正在修改一个相当大的代码库,我正在调试过程中。我的代码没有终止,所以我没有得到一个堆栈跟踪。我试图用断点隔离故障代码,但不幸的是,它贯穿始终执行的部分(事务管理器),所以我点击死亡。此外,我得到的印象是,代码只在特定条件下破解,但大部分时间运行良好。如何在不终止的代码中获取最后执行的方法?
Intellij中有没有一种方法可以查看最后一个方法是/当前执行的方法?
谢谢
我正在修改一个相当大的代码库,我正在调试过程中。我的代码没有终止,所以我没有得到一个堆栈跟踪。我试图用断点隔离故障代码,但不幸的是,它贯穿始终执行的部分(事务管理器),所以我点击死亡。此外,我得到的印象是,代码只在特定条件下破解,但大部分时间运行良好。如何在不终止的代码中获取最后执行的方法?
Intellij中有没有一种方法可以查看最后一个方法是/当前执行的方法?
谢谢
您可以使用跟踪工具BTrace打印出您的程序中输入的每个方法的名称。 BTrace附带一个示例脚本,名为AllMethods
,它就是这样做的。
你们所要做的就是启动你的java进程,然后针对JVM的PID运行BTrace脚本。它会打印输入的每种方法。如果你喜欢,你可以限制它到某些包。有关使用BTrace的更多信息,请查看tutorial。
与JVM的PID你的意思是进程号码,即你使用ps/top? – ib84
@ ib84是的,您在'ps'中看到的进程ID – dogbane