前言
如何下载、安装、启动 Arthas 可点击此处Arthas在Docker容器中的使用-环境搭建 或 Arthas 官网
1.dashboard 仪表板
ctrl+c中断执行,退出仪表板cls清理当前页面,类似clearTab键,可自动补全 arthas 命令
2.thread 查看线程
thread查看当前进程的所有线程thread ID查看指定线程ID的线程thread -n 3展示当前最忙的前3个线程并打印堆栈信息thread -b找出当前阻塞其它线程的线程,排查死锁thread -i 1000 -n 3指定采样时间间隔,并展示最忙碌的3个线程thread --state 线程状态查看处于锁定状态的线程
3.jad 包名.类名 反编译 (需要类被加载到JVM中)
jad 包名.类名包含有类加载器+位置+源码jad 包名.类名 --source-only只包含反编译后的源码jad 包名.类名 方法名反编译指定的方法jad 包名.类名 > 存放路径名反编译类,并存放在指定的文件下
4.watch 观察指定方法的调用情况
watch 包名.类名 方法名 "{params,returnObj}" -x 2,监视方法出参和返回值,-x表示指定输出结果的属性遍历深度,默认为1,params表示所有参数数组,returnObject表示返回值watch 包名.类名 方法名 "{params,returnObj}" -x 2 -b观察方法入参,-b表示在方法调用之前观察,此时没有返回值-e表示在方法异常之后观察,-s表示在方法返回之后观察,-f表示方法结束之后(正常返回和异常返回)观察watch 包名.类名 方法名 "target" -x 2观察当前对象中的所有属性,target表示当前对象watch 包名.类名 方法名 "target.field_name" -x 2观察当前对象中的指定属性target.field_name指定对象中的某个属性watch 包名.类名 方法名 "{params,target,returnObj}" -x 2 -b -s -n 2同时观察方法调用前和方法返回后,参数-n 2表示只执行两次。params表示参数,target表示执行方法的对象,returnObj表示返回值
5.退出 arthas
quit或exit只是退出当前连接,端口会保持开放stop结束会话,完全退出 arthas
本文转载自: 掘金