使用HSDB查看javassist生成的动态class

今天需要分析一个工程中的几个动态代理类,但是,这几个动态代理类是由 javassist 生成的,在 target 中是不存在其文件的,因此无法直接查看。然后搜索了一番,找到了使用 HSDB (HotSpot Debugger)这个工具来查看的办法。

正文

直接上操做步骤吧,这个 HSDB 本就是一个实用工具,实践一下就会用了。

  • 第一步. 运行起自己的应用。

  • 第二步. jps -l 找到自己应用的 PID

  • 第三步. sudo java -classpath "$JAVA_HOME/lib/sa-jdi.jar" sun.jvm.hotspot.HSDB 启动 HSDB

  • 第四步. File -> Attach to HotSpot Process... Attach上自己应用的 PID

    使用HSDB查看javassist生成的动态class

使用HSDB查看javassist生成的动态class

  • 第五步. Tools -> Class Browser 使用HSDB查看javassist生成的动态class

使用HSDB查看javassist生成的动态class

  • 第六步. 按照要查找的动态代理类的类名作为关键字搜索(模糊搜索)

    使用HSDB查看javassist生成的动态class

  • 第七步. 在搜到的类结果面板中点 Create .class File ,此时会在刚才我们执行打开 HSDB 命令的目录中生成对应的 .class 文件

    使用HSDB查看javassist生成的动态class

使用HSDB查看javassist生成的动态class

  • 第八步. 用idea查看生成对应的 .class 文件即可

原文 

https://since1986.github.io/blog/a7709277.html

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 使用HSDB查看javassist生成的动态class

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址