如何获得JVM执行过程中调用的方法名(包含Java自带的)?

crazyboy2005 2011-05-31 04:38:19
如何获得JVM执行过程中调用的方法名(包含Java自带的)?
也就是跟踪执行时的栈空间。
或者有什么工具推荐一下,谢谢!
1)试过java.lang.management包里的ThreadMXBean
ThreadMXBean bean = ManagementFactory.getThreadMXBean();
ThreadInfo[] info = bean.dumpAllThreads(false, false);
for(int j = 0; j < info.length; j++){
System.out.println(info[j].getThreadName());
StackTraceElement[] trackElement = info[j].getStackTrace();
for(int i = 0; i < trackElement.length; i++){
System.out.println("class name: " + trackElement[i].getClassName() + " method name: " + trackElement[i].getMethodName());
}
}

不过只输出到main,后面就没了

2)jdk内置工具jstack介绍----jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 但不知道怎么用

有整过的,给个思路 谢谢了!!
...全文
187 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazyboy2005 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 powerlee2008 的回复:]
用jmx
[/Quote]
谢谢了,正在学习JMX
我是风 2011-06-06
  • 打赏
  • 举报
回复
用jmx
qybao 2011-06-06
  • 打赏
  • 举报
回复
自己调用jstack --help查看一下帮助
如果想更直观一些,可以用jconsole,图形界面查看java进程的运行状态

crazyboy2005 2011-06-03
  • 打赏
  • 举报
回复
不是这个
发现个帖子 虽然是自问自答 但问题还是解决了
http://forums.oracle.com/forums/thread.jspa?threadID=1522114&tstart=15
rmouse_2005 2011-06-01
  • 打赏
  • 举报
回复
jconsole?jdk自带的
mtv0199 2011-06-01
  • 打赏
  • 举报
回复
http://www.517sou.net/Article/378.aspx
crazyboy2005 2011-06-01
  • 打赏
  • 举报
回复
只显示了java.lang.mangement包里面的东东

62,614

社区成员

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

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