如何使用HSDB及sawindbg.dll问题解决

本文介绍了如何使用HSDB工具附加到Java进程进行调试,特别是针对遇到的UnsatisfiedLinkError问题。通过替换缺失的sawindbg.dll文件,成功解决错误并进行内存地址查看,展示了一个利用HSDB检查类和堆栈的实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何使用HSDB?

进入到jdk的lib文件夹下 ,打开cmd,执行命令 java -cp sa-jdi.jar sun.jvm.hotspot.HSDB,会打开一个HSDB的图形化界面。

跑一个不会停的项目,在idea终端使用jps命令找出端口号,1272就是我现在跑的项目

打开HSDB ,file-》attach ,输入1272端口号确认。

报错:Exception in thread "Thread-1" java.lang.UnsatisfiedLinkError: Can't load library: C:\Program Files\Java\jre1.8.0_20\bin\sawindbg.dll

sawindbg.dll这个文件出错,去网上下载一个对应的版本,64位找64位的,32位找32位的。替换这个文件,重新运行HSDB,attach成功。

我这里保存了一份资源上传到csdn了,win10 64位:sawindbg.dll下载

attach该进程端口号,然后tools-》class brower ,找到运行的类的内存地址

找到该地址后,然后tools-》inspector ,将内存地址放上去回车,就可以看到该类在jvm中就是一个instanceKlass。

使用HSDB查看main方法里面的堆栈

根据操作查看main的堆栈情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值