網站首頁 學習教育 IT科技 金融知識 旅遊規劃 生活小知識 家鄉美食 養生小知識 健身運動 美容百科 遊戲知識 綜合知識
當前位置:趣知科普吧 > IT科技 > 

jstack|java

欄目: IT科技 / 發佈於: / 人氣:2.99W

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java jstack是什麼,讓我們一起了解一下?

jstack是java虛擬機自帶的一種堆棧跟蹤工具,用於打印出給定的java進程ID或core file或遠程調試服務的Java堆棧資訊,主要分爲兩個功能:針對活着的進程做本地的或遠程的線程dump,以及針對core檔案做線程dump。

jstack的概念是什麼?

1、jstack命令的語法格式:jstack

2、Dump檔案:Dump檔案是進程的內存鏡像。可以把程序的執行狀態透過調試器儲存到dump檔案中。Dump檔案是用來給驅動程序編寫人員調試驅動程序用的,這種檔案必須用專門的工具軟件開啟,比如使用Windbg。 

在Windbg中可以透過.dump命令儲存進程的dump檔案。比如下面的命令把當前進程的鏡像儲存爲c:estdump.dmp檔案:.dump /ma c:estdump.dmp。 

java jstack

其中、ma參數表示dump檔案應該包含進程的完整資訊,包括整個用戶態的內存,這樣dump檔案尺寸會比較大,資訊非常全面。如果不是用、ma參數,儲存下來的dump檔案只包含了部分重要資料,比如寄存器和線程棧空間,檔案尺寸會比較小,無法分析所有的數據。 

3、java線程Dump:線程dump是非常有用的診斷java應用問題的工具,每一個java虛擬機都有及時生成顯示所有線程在某一點狀態的線程dump的能力。雖然各個java虛擬機線程dump打印輸出格式上略微有一些不同,但是線程dump出來的資訊包含線程基本資訊;線程的執行狀態、標識和調用的堆棧;調用的堆棧包含完整的類名,所執行的方法,如果可能的話還有原始碼的行數。

jstack是如何使用的?

實戰案例如下:

package concurrency;import java.io.IOException;import java.io.InputStream;public class Test {    public static void main(String[] args) throws InterruptedException, IOException {        InputStream is = System.in;        int i = is.read();        System.out.println("exit。");    }}

Tags:jstack java