程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> HSDB,javahsdb

HSDB,javahsdb

編輯:JAVA綜合教程

HSDB,javahsdb


  HSDB 是專門用於調試 HotSpot VM 的調試器,它是一個圖形化界面。與之對應的還有個 CLHSDB-Command Line HotSpot Debugger,命令行調試界面。下面是啟動命令:

java -cp .;%JAVA_HOME%/lib/sa-jdi.jar sun.jvm.hotspot.HSDB # 啟動圖形界面
java -cp .;%JAVA_HOME%/lib/sa-jdi.jar sun.jvm.hotspot.CLHSDB # 啟動命令行界面

1. HSDB 圖形界面

  啟動 HSDB 後,使用 File -> Attach to HotSpot process 連接到目標進程:

  連接成功後,默認打開 Java Threads 界面,雙擊一個線程可查看其 OOP 信息,或者使用工具欄工具,如下:

  • Inspector:查看 OOP 和 Klass 對象信息,雙擊線程名稱也能夠查看此信息
  • Stack Memory:線程棧內存
  • Show Java Stack Traces:顯示線程堆棧信息
  • Show Thread Infomation:顯示線程信息
  • Find Crashes

(1)Inspector

(2)Stack Memory

棧內存界面有 3 欄信息,從左到右依次是:內存地址,指虛擬地址不是物理地址;該地址數據,以字寬為單位,如下圖是在64位的機器的情況,字寬就是64位=8字節;相關注釋,豎線表示范圍,橫線表示說明。

  Tools 工具欄也變得可用,主要有以下功能:

  • Class Browser:類浏覽器
  • Code Viewer: 代碼查看
  • Compute Reverse Ptrs:反向指針計算
  • Deadlock Detection:    死鎖探測
  • Find Object by Query: 使用對象查詢語言查詢對象
  • Find Pointer:查找指針
  • Find Value in Heap:在堆中查詢
  • Find Value in Code Cache:在Code Cache 中查詢
  • Heap Parameters:堆信息
  • Inspector:對象檢查器
  • Memory Viewer:  內存信息
  • Monitor Cache Dump:監控Cache信息
  • Object Histogram:    對象直方圖
  • Show System Properties:顯示系統屬性
  • Show VM Version:顯示 VM 版本
  • Show –XX flags:顯示 VM 選項

使用 Heap Parameters 查看堆信息,能夠查看出各代的地址空間:

2. CLHSDB

  既可以在 HSDB 中使用 Windows –> Console 進行命令行界面,也可以使用 Java 命令直接連接到 CLHSDB 如圖:

  CLHSDB 提供了豐富的命令,使用 help 查看幫助信息,以下簡單介紹常用的命令:

  • attach pid|exec core:連接 Java進程或 core文件
  • class name:查看類信息
  • classes:查看加載的類
  • detach:斷開連接
  • inspect expression:查看 OOP 信息
  • jstack [-v]:線程堆棧
  • mem address [length]:查看內存
  • print expression:輸出表達式值
  • revptrs:反向指針
  • scanoops start end [type]:掃描指定空間中的 type 類型及其子類的實例
  • thread {-a|id}:查看指定線程信息
  • threads:查看所有線程信息
  • universe:查看堆空間信息
  • whatis address:查看指定地址存放的數據信息
  • quit:退出

  通過 HSDB和CLHSDB 可以查看 JVM 內部信息,從本質上去了解 JVM 的工作原理。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved