首页 > 代码库 > jstack简介
jstack简介
jstack:Java进程中线程的堆栈信息跟踪工具
功能简介
jstack常用来打印Java进程/core文件/远程调试端口的Java线程堆栈跟踪信息,包含当前虚拟机中所有线程正在执行的方法堆栈信息的集合。
主要用来定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待。
命令格式
1 jstack [ options ] pid //Java进程 2 jstack [ options ] executable core //core文件 3 jstack [ options ] [ server-id@ ] remote-hostname-or-IP //远程调试端口
其中options选项可有
选项 | 作用 |
-F | 当正常输出的请求不被响应时,强制输出线程堆栈 |
-l | 除了堆栈外,显示关于锁的附加信息 |
-m | 如果调用到本地方法的话,可以显示C/C++的堆栈信息 |
其他说明
1、When the specified process is running on a 64-bit Java Virtual Machine, you might need to specify the -J-d64 option, for example: jstack -J-d64 -m pid.
2、In mixed mode stack trace, the -m option does not work with the remote debug server.
3、In Windows Systems where the dbgeng.dll file is not present, Debugging Tools For Windows must be installed so these tools work.
样例
java线程的获得:使用jps -l,或者使用top命令查看使用cpu/memory最多的进程id,或者ps -aux | grep java
进程id的获得:top -Hp pid,找到改线程下的最繁忙的进程id(十进制要转换成16进制:printf "%x\n" tid)
jstack -l pid | grep tid
jstack简介
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。