HSDB - HotSpot debugger

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HSDB - HotSpot debugger相关的知识,希望对你有一定的参考价值。

  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 # 启动命令行界面

  启动 HSDB 后,使用 File -> Attach to HotSpot process 连接到目标进程:

技术分享

  连接成功后,默认打开 Java Threads 界面,当选中一个线程比如main,工具栏变为可用,如下:

技术分享

  • Inspector:查看 OOP 和 Klass 对象信息,双击线程名称也能够查看此信息
  • Stack Memory:线程栈内存
  • Show Java Stack Traces:显示线程堆栈信息
  • Show Thread Infomation:显示线程信息
  • Find Crashes

(1)Inspector

技术分享

(2)Stack Memory

栈内存界面有 3 栏信息,从左到右依次是:内存地址,指虚拟地址不是物理地址;该地址数据,以字宽为单位,如下图是在64位的机器的情况,字宽就是64位=8字节;相关注释,竖线表示范围,横线表示说明。

技术分享

以上是关于HSDB - HotSpot debugger的主要内容,如果未能解决你的问题,请参考以下文章

30 借HSDB来探索HotSpot VM的运行时数据

第一次使用HSDB

HSDB

运用HSDB查看jvm运行时数据

HSDB: 16张图带你看见JVM中的Java对象

JVMlinuxlinux上执行jmap命令查看JVM内存使用情况,报错:sun.jvm.hotspot.debugger.NoSuchSymbolException: Could not f