jstack
jstack 用来打印当前 Java 进程的所有 stacktrace 信息, 包括每层栈的类名, 方法名, 行号, 以及线程的状态, 当前线程拥有的锁, 还能打印部分 native stracktrace.
jstack [ option ] pid
jstack [ option ] executable core
jstack [ option ] [server-id@]remote-hostname-or-IP
最常使用的还是跟 pid 去打印当钱进程的栈. 比如:
jstack -l 42596
jstack -l 42596 > /tmp/stack.txt
jstack -m 42596 // 打印包括 native 栈在内的所有栈.
jstack -F 42956 //Solaris & Linux 上 force 打印栈
这个功能可以通过最新的 jcmd 来实现.
jcmd 42596 Thread.print