我正在尝试找到一个输出模式,它将显示正在运行的程序中调用的每个方法的执行和顺序。详细和调试器输出细节似乎没有给我这个。有没有办法得到像我在这里描述的那样的详细输出?谢谢!
答案 0 :(得分:1)
您可以使用以下方式执行此类操作:
一个:将以下任一代码放入程序中的每个方法中:
System.out.println(Thread.currentThread().getStackTrace()[1].getMethodName());
System.out.println(new Object(){}.getClass().getEnclosingMethod().getName());
两个:使用dumpStack()
方法:
Thread.currentThread().dumpStack();
三:使用printStackTrace
Throwable
new Throwable().printStackTrace();
四:这是第一个解决方案的变体
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
for(StackTraceElement st : stackTrace){
System.err.println(st);
}