1、功能
jstack 是jvm自帶的java線程堆棧跟蹤工具,用於打印指定java進程的id、core file、遠程調試服務的java堆棧信息
- jstack命令用於生成虛擬機當前時刻的線程快照。
- 線程出現停頓的時候通過jstack來查看各個線程的調用堆棧,就可以知道沒有響應的線程到底在后台做什么事情,或者等待什么資源
- 如果java程序崩潰生成core文件,jstack工具可以用來獲得core文件的java stack和native stack的信息,從而可以輕松地知道java程序是如何崩潰和在程序何處發生問題
2、位置
jstack 命令位於$JAVA_HOME/bin目錄下
3、使用方法
option參數
- -F 當正常輸出的請求不被響應時,強制輸出線程堆棧
- -m mixed mode,不僅會輸出Java堆棧信息,還會輸出C/C++堆棧信息(比如Native方法)
- -l long listings,會打印出額外的鎖信息,在發生死鎖時可以用jstack -l pid來觀察鎖持有情況
使用jstack 導出java線程堆棧信息並輸出到指定文件中
jstack -l pid > /opt/111.dump