博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HSDB - HotSpot debugger
阅读量:6469 次
发布时间:2019-06-23

本文共 1673 字,大约阅读时间需要 5 分钟。

  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 的工作原理。

转载于:https://www.cnblogs.com/cwane/p/6129436.html

你可能感兴趣的文章
慕课网学习手记--炫丽的倒计时效果Canvas绘图与动画基础
查看>>
==与equals()的区别
查看>>
基本分类方法——KNN(K近邻)算法
查看>>
在XenCenter6.2中构建CentOS7虚拟机的启动错误
查看>>
.NET Framework3.0/3.5/4.0/4.5新增功能摘要
查看>>
php中表单提交复选框与下拉列表项
查看>>
熟悉常用的Linux操作
查看>>
面象过程与面象对象
查看>>
谷歌设置支持webgl
查看>>
js的AJAX请求有关知识总结
查看>>
Eclipse添加新server时无法选择Tomcat7的问题
查看>>
nginx 配置https 负载均衡
查看>>
双拓扑排序 HDOJ 5098 Smart Software Installer
查看>>
三分 POJ 2420 A Star not a Tree?
查看>>
存储过程报错行提示
查看>>
Leetcode 4 - median-of-two-sorted-arrays
查看>>
修改OBS为仅直播音频
查看>>
完整版:《开源框架实战宝典电子书V1.0.0》内测版下载地址!
查看>>
OCA读书笔记(3) - 使用DBCA创建Oracle数据库
查看>>
CKEditor的使用-编辑文本
查看>>