HSDB

1 定义

HSDB ( Hotspot Debugger) 。 jdk自带的 检查调试java进程的工具。
最近在深入学习jvm,会用到这个神器辅助学习,所以记录一下用法。

2 使用

我的是mac版本

2.1 启动

sudo java -cp /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib/sa-jdi.jar sun.jvm.hotspot.HSDB
这里一定要注意,如果你的机器有多个jdk,那你启动的jdi的版本,一定要与你要attach的java进程的运行环境的jdk版本一致,否则会遇到很多问题。
启动完成以后是这个样子:

image.png

2.2 attach一个java进程

用main方法,启动了一个java进程,并一直等待录入:

public static void main(String[] args) throws IOException {
        String zhTest="zenghong test";
        System.in.read();
    }

使用jps查看java进程号是 23372

zenghong@MacBook-Pro:~$ jps
19601 RemoteMavenServer
23363 Launcher
99462
23372 HeartBeatCheckController
23486 Jps
782

attach进程号:


image.png

image.png

可以看到对应线程


image.png

2.3 查看一个对象

Tools > Class Browser


image.png

拿到内存地址: 0x00000007c0060828

Tools > Inspector


image.png

完结。

你可能感兴趣的:(HSDB)