HSDB】的更多相关文章

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 图…
select t from java.lang.Thread t $JAVA_HOME/bin/java -classpath $JAVA_HOME/lib/sa-jdi.jar sun.jvm.hotspot.HSDB import java.util.ArrayList; import java.util.List; import java.util.Properties;/** * Created by jason on 7/25/2016. */ public class gg { pu…
一.JDB调试        在预发环境下进行debug时,时常因为工具和环境的限制,导致debug体验非常差,那么有什么方法能够简化我们进行debug的体验吗?JDB就是一种.        JDB是 The Java Debugger 的简称,它可以用来debug一个Java程序,同时它是 JPDA 的一个参考实现,只是这个实现是基于命令行的. 使用JDB的目的是,更细节的诊断和操控代码,如果只是观察值,可以使用arthas之类的工具 1.1.JPDA JPDA将调试过程分为两部分:被调试的…
HSDB则是在SA(Serviceability Agent)基础上包装起来的一个调试器,而SA是个非常便于探索HotSpot VM内部实现的API. Stack Memory窗口的内容有三栏: 左起第1栏是内存地址,请让我提醒一下本文里提到“内存地址”的地方都是指虚拟内存意义上的地址,不是“物理内存地址”,请不要弄混了这俩概念: 第2栏是该地址上存的数据,以字宽为单位,本文例子中字宽是64位(8字节): 第3栏是对数据的注释,竖线表示范围,横线或斜线连接范围与注释文字.…
今天看了几篇大佬关于HSDB使用的文章,自己也依样画葫芦的用来一下,强大的一匹!!! HSDB(Hotspot Debugger),JDK自带的工具,用于查看JVM运行时的状态. HSDB位于C:\Program Files\Java\jdk1.8.0_212\lib里面,接下来启动HSDB: 1 java -cp .\sa-jdi.jar sun.jvm.hotspot.HSDB 正常启动之后界面是这样的: 一篇空白,没啥好看的.当然有的同学可能启动的时候会报错,我启动的时候也是报错了的: 这…
一:oop-kclass模型 思考:我们平时写的java类编译成.class文件,JVM加载.class文件,那么加载.class文件之后在JVM中就是oop-kclass(C++)模型形式存在的. JVM内部基于oop-klass模型描述一个java类,将一个java类分为两个部分进行描述,其中第一个模型是oop,第二个模型是klass. oop: ordinary object pointer,也即普通对象指针.oop成员众多   这里有个问题,不是说xxxoop吗?怎么类图上怎么就是xxx…
univese Unrecognized command. Try help... hsdb> universe Heap Parameters: Gen 0: eden [0x00000000ff600000,0x00000000ff6bca68,0x00000000ff8b0000) space capacity = 2818048, 27.420114916424417 used from [0x00000000ff8b0000,0x00000000ff8b0000,0x00000000f…
本文是引用https://club.perfma.com/article/2261053 有人问了个小问题,说: public class Test { static Test2 t1 = new Test2(); Test2 t2 = new Test2(); public void fn() { Test2 t3 = new Test2(); } } class Test2 { } 这个程序的t1.t2.t3三个变量本身(而不是这三个变量所指向的对象)到底在哪里. TL;DR版回答是: t1…
前置工作 1. 复制 JDK 安装目录\jre\bin\sawindbg.dll 到 JDK 安装目录同级的 jre\bin 目录下,否则会报错找不到 sawindbg.dll 文件. 比如我的 sawindbg.dll 文件在 D:\Program Files\Java\jdk1.8.0_301\jre\bin 目录下,需要复制到 D:\Program Files\Java\jre1.8.0_301\bin 目录下   2. 启动工程,需要注意的是,启动工程的 JVM 环境必须是安装的 JDK…
https://zhuanlan.zhihu.com/p/269134063  番茄番茄我是西瓜 那是我日夜思念深深爱着的人啊~ 已关注   6 人赞同了该文章 前言 本篇是java内存区域管理系列教程之实战篇 --通过可视化工具和日志窥探内存分配策略 全系列内容可在本文专栏-jvm大局观中查阅 jvm全局观​www.zhihu.com 今天是实战篇,我们将通过一些常用的代码,依据可视化工具,来窥探这些代码背后,jvm内存分配的策略,其中会有颠覆全网80%的关于jvm方法区的认知(静态变量的存储…