1.介紹
Stack Trace for Java,用于生成虛拟機目前的線程快照資訊,包含每一條線程的堆棧資訊。該指令通常用于定位線程停頓原因,當出現線程停頓時,可通過stack檢視每個線程的堆棧資訊,進而分析停頓原因。
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 ] [[email protected]]remote-hostname-or-IP
3.常用參數說明
1).options
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查詢
4.使用示例

文章來源:http://blog.csdn.net/fenglibing/article/details/6411940