请求Java ThreadInfo的堆栈跟踪?

Gre*_*tes 5 java jmx stack-trace

我有调用应用getStackTrace()一个上java.lang.management.ThreadInfo对象,但是StackTraceElement通过调用产生的阵列的长度为零.

检查Javadoc显示了这一点(强调我的):

public StackTraceElement[] getStackTrace()
Run Code Online (Sandbox Code Playgroud)

返回与此ThreadInfo关联的线程的堆栈跟踪.如果没有为此线程信息请求堆栈跟踪,则此方法将返回零长度数组.如果返回的数组长度非零,则数组的第一个元素表示堆栈的顶部,这是序列中最近的方法调用.数组的最后一个元素表示堆栈的底部,这是序列中最近的方法调用.

如何为此线程信息请求堆栈跟踪?

Dav*_*har 9

你是如何调用getThreadInfo()的

您是否指定了堆栈跟踪深度?

getThreadInfo(long id,int maxDepth)返回指定id的线程的线程信息,堆栈跟踪指定数量的堆栈跟踪元素.