Arthas
1. 官方教程
下载官方jar包
1 | wget https://arthas.aliyun.com/arthas-boot.jar |
启动
1 | java -jar arthas-boot.jar |
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
跟踪类