初次尝试java虚拟机调试-启动hsdb

     2022-03-17     546

关键词:

    本人最近正在学习java虚拟机,而HSDB是学习java虚拟机的必经之路,于是今天尝试下了HSDB的调试。

    首先借鉴了知乎大牛R大的文章:   借HSDB来探索HotSpot VM的运行时数据,而本文章的意义在于帮助和我一样想学习java虚拟机但平时过于依赖ide的同学。我的环境是JDK8。废话不多说了,直接上图。

1.创建并编译代码

技术分享

由于平时使用eclipse,如果没有配好path、javahome和classpath要首先配好,然后cmd进入工程目录下,我的package是hsdb,需要进入到hsdb的上级目录下,执行编译:

技术分享

2.jdb调试代码并暂停

ps:jdb,jps和sa-jdi.jar都在jdk lib和bin目录下

技术分享

3.使用jps查看java程序pid

上图的cmd窗口保留不动,重新打开一个新的cmd窗口,使用jps查看java程序的进程号并执行后续的HSDB启动操作

技术分享

图中我们可以看到Main的pid是18392.

4.启动HSDB

注意:我们大多的java装在了C:Program Files下路 这个完整classpath路径需要用双引号转义一下,如下图:

技术分享

执行完这个命令之后我们的HSDB工具就应该启动了。但是我启动的时候报了一个错误:Exception in thread "Thread-1" java.lang.UnsatisfiedLinkError: Can‘t load library: D:Program FilesJavaXXXsawindbg.dll.参照如下文章进行了解决 HSDB时,关于解决UnsatisfiedLinkError sawindbg.dll的问题笔记

然后我们就可以用pid号链接到进程

技术分享


技术分享

技术分享


至此,我们HSDB工具已经连接到我们的java进程中,可以进行进一步的调试了。本文章意在帮助第一次使用HSDB调试的同学爬坑,并给自己做个笔记。

本文出自 “刹那华芳” 博客,请务必保留此出处http://9903567.blog.51cto.com/9893567/1923901

hsdb-hotspotdebugger

  HSDB是专门用于调试HotSpotVM的调试器,它是一个图形化界面。与之对应的还有个CLHSDB-CommandLineHotSpotDebugger,命令行调试界面。下面是启动命令:java-cp.;%JAVA_HOME%/lib/sa-jdi.jarsun.jvm.hotspot.HSDB#启动图形界面java-cp.;%JAVA_HOME%/lib/sa-jdi.j... 查看详情

深入理解java虚拟机jhsdb:基于服务性代理的调试工具(代码片段)

文章目录前言一、JHSDB介绍二、JHSDB实操结尾前言JHSDB虽然是JDK9中才正式提供,但之前已经以sa-jdi.jar包里面的HSDB(可视化工具)和CLHSDB(命令行工具)的形式存在了很长一段时间。它们两个都是JDK的正式成员&#... 查看详情

深入理解java虚拟机jhsdb:基于服务性代理的调试工具(代码片段)

文章目录前言一、JHSDB介绍二、JHSDB实操结尾前言JHSDB虽然是JDK9中才正式提供,但之前已经以sa-jdi.jar包里面的HSDB(可视化工具)和CLHSDB(命令行工具)的形式存在了很长一段时间。它们两个都是JDK的正式成员&#... 查看详情

jpda远程调试方法记录(代码片段)

...vaplatformdebuggerarchitecture)是java平台调试架构的简称,由java虚拟机后端和调试平台前端组成。1、java虚拟机提供了java调试功能;2、调试平台通过调试交互协议向java虚拟机请求服务,以对在虚拟机中运行的程序进行调试。二、idea配... 查看详情

Java虚拟机启动器无法创建虚拟机错误如何解决?

...描述】:我正在研究javawicket框架和Apachetomcat。我在这里尝试时遇到问题启动tomcat它显示Java虚拟机启动器弹出窗口“无法创建Java虚拟机”。 查看详情

远程调试:无法连接到远程虚拟机。连接超时

...调试。从我的虚拟机我可以远程登录到远程调试端口。我尝试重新启动Eclips 查看详情

vs2015中无法启动xamarinandroid调试怎么办

...。如果没有请先建立一个,具体方法Google。2.使用adb命令尝试连接到当前的虚拟机adb.exe位于AndroidSDK目录下的platform-tools目录,例如C:\ProgramFiles(x86)\Android\android-sdk\platform-tools找到adb.exe后,打开cmd运行adbdevices–l默认会... 查看详情

什么是jpda??

...A  JavaPlatformDebuggerArchitecture(JPDA:Java平台调试架构)由Java虚拟机后端和调试平台前端组成  1.Java虚拟机提供了Java调试的功能  2.调试平台通过调试交互协议向Java虚拟机请求服务以对在虚拟机中运行的程序进行调试  JPDA的... 查看详情

虚拟机脚本的初次编写

#######虚拟机快照#####qemu-imgcreate-fqcwo2-bvm2.qcwo2node1.qcow2@@此处注意""后不能有任何符号 1#!/bin/bash 2echopoweroff$1... 3virshdestroy$1&>/dev/null        查看详情

第一次使用hsdb(代码片段)

...态。HSDB位于C:\\ProgramFiles\\Java\\jdk1.8.0_212\\lib里面,接下来启动HSDB:1java-cp.\\sa-jdi.jarsun.jvm.hotspot.HSDB  正常启动之后界面是这 查看详情

jvm(57),类加载器----初次认识加载器

虚拟机设计团队把类加载阶段中的"通过一个类的全限定名来获取描述此类的二进制字节流"这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为"类加载器"。 类加载... 查看详情

初始堆大小无效。无法创建Java虚拟机

...3-05-0106:37:31【问题描述】:我遇到了下一个问题:我正在尝试通过startup.bat手动启动Tomcat,但似乎没有显示任何结果,然后我尝试运行shutdown.bat,控制台显示下一个:D:\\apache-tomcat-7.0.3 查看详情

vmware虚拟机无法开机,提示“内部错误”的解决方法

...服务如果未正常开启,请设置开启,然后重新启动虚拟机尝试。注:服务管理窗口路径:控制面板-管理工具-服务方法二:关闭VMwareworkstation,右击VMware的快捷方式,选择“以管理员身份运行”。方法三:找到VMwareworkstation的安装... 查看详情

java虚拟机启动(代码片段)

Java虚拟机JVM的启动参数运行一个java程序,在命令行中输入命令:jps:显示当前运行在虚拟机上的进程,可以查看我们自己的程序的进程号:3272然后输入下面命令:该命令会打印当前进程运行的虚拟机的参... 查看详情

linux使用_vm虚拟机下ubuntu初次使用配置(代码片段)

文章目录简介目标阅读基础环境说明参考资料打开虚拟机Ubuntu系统设置分辨率更新换源安装搜狗中文输入法检测是否安装fcitx安装搜狗输入法配置使用fcitx测试搜狗输入法安装VMwareTools下载WMware安装包安装VMwareTools设置windows下的共... 查看详情

ant无法在eclipsekepler中工作(java虚拟机启动器-发生了java异常)

...在构建文件中选择哪个目标,都会发生Java异常错误。我尝试重新安装我的JDK,但仍然得到错误。我正在运行JDK的7u25版本。我将我的JAVA_HOME环境变量设置为C:Progra~1Javajdk1.7.0_25,所以我不认为这是问题所在。还有什么可能导致这个... 查看详情

启动虚拟机显示物理内存不够无法启动

...此虚拟机。如果您以前能够在此主机上开启该虚拟机,请尝试重新引导此主机。重新引导主机后,可用于运行虚拟机的主机内存资源也许会比现在稍微多一些。  解决方法如下,以下针对Windows8.1的主机环境,Win7也可能适用:... 查看详情

Java虚拟机的启动时间由啥组成?

】Java虚拟机的启动时间由啥组成?【英文标题】:Whatdoesthestart-uptimecomposeofinJavavirtualmachine?Java虚拟机的启动时间由什么组成?【发布时间】:2012-06-1500:58:38【问题描述】:有时我听到人们讨论Java的启动时间。看来这是一个重要... 查看详情