有没有办法转储堆栈跟踪而不在java中引发异常?

我正在考虑为我的Java应用程序创建一个调试工具。

我想知道是否有可能获得堆栈跟踪,就像但实际上没有抛出异常一样?Exception.printStackTrace()

我的目标是,在任何给定的方法中,转储堆栈以查看方法调用者是谁。


答案 1

是的,只需使用

Thread.dumpStack()

答案 2

您还可以尝试获取所有活动线程的堆栈跟踪映射。Thread.getAllStackTraces()