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版本一致,否则会遇到很多问题。
启动完成以后是这个样子:
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
完结。
网友评论