arthas
# 下载 wget https://alibaba.github.io/arthas/arthas-boot.jar # 启动 java -jar arthas-boot.jar --target-ip 0.0.0.0 # 帮助 help # 查看系统实时数据面板 dashboard # 打印线程 id1 的堆栈 thread 1 # 查找 JVM 中已加载的类 sc -d *MathGame # 反编译代码 jad demo.MathGame # 查看方法的返回值 watch demo.MathGame primeFactors returnObj # 彻底退出 stop
查看 JVM 信息
# 打印所有的 System Properties 信息 sysprop # 指定单个 key sysprop java.version # 设置新的 value sysprop testKey testValue # 获取环境变量 sysenv # 打印 JVM 的各种详细信息 jvm
Tips
# 快捷键 keymap # 历史命令 history # pipeline sysprop | grep java sysprop | wc -l
watch 相关
返回值表达式
- loader
- clazz
- method
- target
- params
- returnObj
- throwExp
- isBefore
- isThrow
- isReturn
可以利用这些内置对象来组成不同的表达式。比如返回一个数组:
watch com.example.demo.arthas.user.UserController * '{params[0], target, returnObj}'
条件表达式
watch命令支持在第4个参数里写条件表达式,比如:
watch com.example.demo.arthas.user.UserController * returnObj 'params[0] > 100'
异常时捕获
watch命令支持-e选项,表示只捕获抛出异常时的请求:
watch com.example.demo.arthas.user.UserController * "{params[0],throwExp}" -e
按照耗时进行过滤
watch命令支持按请求耗时进行过滤,比如:
watch com.example.demo.arthas.user.UserController * '{params, returnObj}' '#cost>200'
arthas.txt · 最后更改: 2020/09/22 12:14 由 plough