Arthas

Arthas

1. 官方教程

下载官方jar包

1
wget https://arthas.aliyun.com/arthas-boot.jar

启动

1
2
java -jar arthas-boot.jar
启动后会列出所有的Java进程,用户可以选择需要诊断的目标进程。输入序号即可。成功监听后会打印 Arthas LOGO

2. 指令

1
dashboard

查看当前系统的实时数据面板
输入Q或Ctrl+C退出dashboard命令

1
thread 1

打印线程ID 1的栈
Arthas支持管道,可以用 thread 1 | grep 'main(' 查找到main class

1
sc -d *MathGame

查找JVM里已加载的类,如果搜索的是接口,还会搜索所有的实现类

1
sm -d java.math.RoundingMode

查找类的具体函数

1
jad demo.MathGame

反编译代码

1
watch com.example.demo.arthas.user.UserController * '{params, throwExp}'

第一个参数是类名,支持通配;第二个参数是函数名,支持通配;第三个参数是返回值表达式,内置对象有
loader
clazz
method
target
params
returnObj
throwExp
isBefore
isThrow
isReturn

1
exit/quit

退出Arthas

1
stop

彻底退出Arthas

1
ognl

动态执行代码

trace
跟踪类