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

完结。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容