在java中获取调用的方法堆栈

时间:2011-07-21 17:42:50

标签: java debugging

我需要知道在代码中逐个调用哪些方法。简单的逐步调试没有帮助(需要太多时间)。我怎样才能做到这一点?如果不更改代码并将结果保存在文件中,这样做真的很棒。

6 个答案:

答案 0 :(得分:1)

在您的计划完成之前,您可以Thread.currentThread().getStackTrace();然后打印其中的每个元素。堆栈跟踪显示了线程中的执行顺序。

答案 1 :(得分:1)

听起来像是一个贯穿各领域的问题,特别是当你谈到不改变现有代码时。

AspectJ可以使用切入点为您完成这项工作。

http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html

答案 2 :(得分:1)

由于看起来您可能不想检查堆栈树,只是订单,您可以查看BTraceAdding logging with Java agent

答案 3 :(得分:1)

您是说要记录程序中发生的每个方法调用吗?如果是这样,请查看AspectJ - 有一个示例here来记录特定方法,但您可以轻松地对其进行调整以涵盖所有方法。

答案 4 :(得分:0)

当您捕获异常时,您可以尝试使用printStackTrace()函数来转储已调用的内容。

try{
     //Your code
}
catch(Exception e){
    e.printStackTrace();
} 

答案 5 :(得分:0)

在调试模式下运行代码,您将能够设置断点以暂停执行,逐行执行,检查变量等。基本上所有IDE都具有调试模式。