1、介绍
jstack用于打印出给定的 java 进程 ID 或 core?file 或远程调试服务的 Java 堆栈信息,如果是在 64 位机器上,需要指定选项 "-J-d64" , Windows 的 jstack 使用方式只支持以下的这种方式:
jstack?[-l]?pid
如 果java 程序崩溃生成 core 文件, jstack 工具可以用来获得 core 文件的 java?stack 和 native?stack 的信息,从而可以轻松地知道 java 程序是如何崩溃和在程序何处发生问题。另外, jstack 工具还可以附属到正在运行的 java 程序中,看到当时运行的 java 程序的 java?stack 和 native?stack 的信息 ,? 如果现在运行的 java 程序呈现 hung 的状态, jstack 是非常有用的。
2、命令格式
jstack?[?option?]?pid
jstack?[?option?]?executable?core
jstack?[?option?]?[server-id@]remote-hostname-or-IP
3、常用参数说明
1)、 o ptions : ?
executable?Java?executable?from?which?the?core?dump?was?produced.
(可能是产生 core?dump 的 java 可执行程序 )
core?将被打印信息的 core?dump 文件
remote-hostname-or-IP?远程 debug 服务的主机名或 ip
server-id?唯一 id, 假如一台主机上多个远程 debug 服务?
2)、基本参数:
-F当 ’jstack?[-l]?pid’ 没有相应的时候强制打印栈信息
-l长列表 .? 打印关于锁的附加信息 , 例如属于 java.util.concurrent 的 ownable?synchronizers 列表 .
-m打印 java 和 native?c/c++ 框架的所有栈信息 .
-h?|?-help打印帮助信息
pid?需要被打印配置信息的 java 进程 id, 可以用 jps 查询 .