java如何查看栈内存中当前运行的函数

qing 2009 2013-04-01 07:40:46
java如何查看栈内存中当前运行的函数。
使用System.out.print()打印出来
...全文
283 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qing 2009 2013-04-02
  • 打赏
  • 举报
回复
引用 1 楼 ticmy 的回复:
new Exception().getStackTrace()[0].getMethodName() 随便写写的,不知道行不行
谢谢,就是要这种解决方法。 这里的0表示取出栈顶方法,写个for循环就可以取出栈内存中的全部方法: StackTraceElement[] sTraceElements = new Exception().getStackTrace(); for (int i = 0; i < sTraceElements.length; i++) { System.out.println("当前栈内存中的方法 : "+sTraceElements[i]); }
qing 2009 2013-04-02
  • 打赏
  • 举报
回复
引用 2 楼 babyblue_963 的回复:
如果在程序内部访问全部线程的调用栈信息,可以参考如下的实现 for (final Map.Entry<Thread, StackTraceElement[]> entry : Thread.getAllStackTraces().entrySet()) { final Thread thread = entry.getKey()……
谢谢,你提供的这个工具很好
小南家的青蛙 2013-04-01
  • 打赏
  • 举报
回复
如果在程序内部访问全部线程的调用栈信息,可以参考如下的实现 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,或者其它工具。
龙四 2013-04-01
  • 打赏
  • 举报
回复
new Exception().getStackTrace()[0].getMethodName() 随便写写的,不知道行不行

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧