Java诊断工具:Arthas
Arthas 是阿里开源的Java应用诊断工具,一款功能全面且强大的工具平台,可用于在线排查问题和热修复线上代码。原理是通过字节码操作修改已有Class文件或新增Class文件,提供代码统计分析等功能。
官方文档:https://alibaba.github.io/arthas/quick-start.html
启动工具:
java -jar arthas-boot.jar
常用操作:
help # 查看帮助
dashboard # 查看仪表盘,Ctrl+C中断操作
thread [ID] 查看指定进程的堆栈
jad CLASS_NAME # 反编译查看类代码
watch CLASS_NAME METHOD_NAME returnObj # 监控某个函数的返回值
dump # dump已加载的类的字节码到特定目录中
classloader # 查看classloader的继承树
线上热更一条龙
sc -d *CLASS_PATTERN # 查找JVM加载的类的信息
jad --source-only CLASS_NAME > JAVA_FILE
mc -c CLASSLOADER_HASH JAVA_FILE -d CLASS_PATH # 内存编译.java文件为.class文件
redefine CLASS_FILE # 加载外部.class文件,redefine到JVM里
热更注意:修改的代码不允许添加新属性和方法。
退出当前工具客户端:quit
或者 exit
关闭Arthas服务端:shutdown
Arthas 服务端关闭时会重置所有增强过的类。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 using1174@foxmail.com
文章标题: Java诊断工具:Arthas
文章字数: 291
本文作者: Jun
发布时间: 2019-10-12, 17:45:00
最后更新: 2019-10-12, 18:56:24
原始链接: http://yoursite.com/2019/10/12/Java诊断工具:Arthas/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。