初次嘗試java虛擬機器調試-啟動HSDB

來源:互聯網
上載者:User

標籤:java   虛擬機器   hsdb   

    本人最近正在學習java虛擬機器,而HSDB是學習java虛擬機器的必經之路,於是今天嘗試下了HSDB的調試。

    首先借鑒了知乎大牛R大的文章:   借HSDB來探索HotSpot VM的運行時資料,而本文章的意義在於協助和我一樣想學習java虛擬機器但平時過於依賴ide的同學。我的環境是JDK8。廢話不多說了,直接。

1.建立並編譯代碼

650) this.width=650;" title="QQ圖片20170509223811.png" alt="wKiom1kR1MaTgcXmAAAcnGehB7s338.png-wh_50" src="https://s3.51cto.com/wyfs02/M00/95/21/wKiom1kR1MaTgcXmAAAcnGehB7s338.png-wh_500x0-wm_3-wmp_4-s_319415952.png" />

由於平時使用eclipse,如果沒有配好path、javahome和classpath要首先配好,然後cmd進入工程目錄下,我的package是hsdb,需要進入到hsdb的上級目錄下,執行編譯:

650) this.width=650;" title="QQ圖片20170509224928.png" alt="wKioL1kR11DyTEumAAAnrRx-WxE775.png-wh_50" src="https://s2.51cto.com/wyfs02/M02/95/21/wKioL1kR11DyTEumAAAnrRx-WxE775.png-wh_500x0-wm_3-wmp_4-s_585189790.png" />

2.jdb調試代碼並暫停

ps:jdb,jps和sa-jdi.jar都在jdk lib和bin目錄下

650) this.width=650;" title="QQ圖片20170509225459.png" alt="wKioL1kR2GfzmZr_AABLrjSXStM844.png-wh_50" src="https://s5.51cto.com/wyfs02/M01/95/21/wKioL1kR2GfzmZr_AABLrjSXStM844.png-wh_500x0-wm_3-wmp_4-s_3100643040.png" />

3.使用jps查看java程式pid

的cmd視窗保留不動,重新開啟一個新的cmd視窗,使用jps查看java程式的進程號並執行後續的HSDB啟動操作

650) this.width=650;" title="QQ圖片20170509230303.png" alt="wKioL1kR2k_ydex7AAAcPWAVt80472.png-wh_50" src="https://s3.51cto.com/wyfs02/M01/95/21/wKioL1kR2k_ydex7AAAcPWAVt80472.png-wh_500x0-wm_3-wmp_4-s_3428927772.png" />

圖中我們可以看到Main的pid是18392.

4.啟動HSDB

注意:我們大多的java裝在了C:\Program Files下路 這個完整classpath路徑需要用雙引號轉義一下,如:

650) this.width=650;" title="QQ圖片20170509230935.png" alt="wKioL1kR283z3louAAAo5aj3P_k669.png-wh_50" src="https://s2.51cto.com/wyfs02/M02/95/21/wKioL1kR283z3louAAAo5aj3P_k669.png-wh_500x0-wm_3-wmp_4-s_1782363628.png" />

執行完這個命令之後我們的HSDB工具就應該啟動了。但是我啟動的時候報了一個錯誤:Exception in thread "Thread-1" java.lang.UnsatisfiedLinkError: Can‘t load library: D:\Program Files\Java\XXX\sawindbg.dll.參照如下文章進行瞭解決 HSDB時,關於解決UnsatisfiedLinkError sawindbg.dll的問題筆記 。

然後我們就可以用pid號連結到進程

650) this.width=650;" title="QQ圖片20170509232013.png" alt="wKioL1kR3lTyogn8AABWDv4J4hE922.png-wh_50" src="https://s3.51cto.com/wyfs02/M01/95/22/wKioL1kR3lTyogn8AABWDv4J4hE922.png-wh_500x0-wm_3-wmp_4-s_4129247002.png" />


650) this.width=650;" title="QQ圖片20170509232219.png" alt="wKioL1kR3sqCWrIzAACNRSoytDs064.png-wh_50" src="https://s2.51cto.com/wyfs02/M00/95/22/wKioL1kR3sqCWrIzAACNRSoytDs064.png-wh_500x0-wm_3-wmp_4-s_1859168794.png" />

650) this.width=650;" title="QQ圖片20170509232332.png" alt="wKiom1kR30jyJAAlAABub4kFvjM688.png-wh_50" src="https://s1.51cto.com/wyfs02/M00/95/22/wKiom1kR30jyJAAlAABub4kFvjM688.png-wh_500x0-wm_3-wmp_4-s_3950191431.png" />


至此,我們HSDB工具已經串連到我們的java進程中,可以進行進一步的調試了。本文章意在協助第一次使用HSDB調試的同學爬坑,並給自己做個筆記。

本文出自 “刹那華芳” 部落格,請務必保留此出處http://9903567.blog.51cto.com/9893567/1923902

初次嘗試java虛擬機器調試-啟動HSDB

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.