java如何查看栈内存中当前运行的函数
java如何查看栈内存中当前运行的函数。
使用System.out.print()打印出来
java
栈内存
------解决方案--------------------new Exception().getStackTrace()[0].getMethodName()
随便写写的,不知道行不行
------解决方案--------------------如果在程序内部访问全部线程的调用栈信息,可以参考如下的实现
for (final Map.Entry<Thread, StackTraceElement[]> entry : Thread.getAllStackTraces().entrySet()) {
final Thread thread = entry.getKey();
final StackTraceElement[] stack = entry.getValue();
for (final StackTraceElement frame : stack) {
System.out.println(thread.getName() + " = " + frame);
}
}
如果在程序外部,则可以使用jstack或者java visualvm,或者其它工具。