日期:2014-05-20  浏览次数:20624 次

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,或者其它工具。