Arthas 常用命令

watch

函数执行数据观测: location 会有三种值
AtEnter,AtExit,AtExceptionExit。

对应函数入口,函数正常 return,函数抛出异常。
result 表示观察表达式的值: {params,returnObj,throwExp}

eg: 查看是某个方法的参数,返回值,异常信息
watch com.test.service.TedRecordServiceImpl existError
'{params,returnObj,throwExp}' -n 5 -x 3

在这里插入图片描述

trace

方法内部调用路径,并输出方法路径上的每个节点上耗时。排查耗时多的方法进行优化

eg: 打印列表组织树的调用路径
trace com.test.te.service.impl.TedRecordServiceImpl getHistoryRecord -n 5
--skipJDKMethod false

在这里插入图片描述

jad

命令将 JVM 中实际运行的 class 的 byte code 反编译成 java 代码

sc

查看 JVM 已加载的类信息

mc

编译.java文件生成.class

redefine

加载外部的.class文件,redefine jvm 已加载的类。

通常 jad、sc、 mc、 redefine 四个命令会一起结合使用,
操作步骤:

#将class 反编译成java文件
jad --source-only com.dongbao.per.service.impl.org.PerOrgsServiceImpl >
/data/temp/PerOrgsServiceImpl.java

#获取class 的 类加载器的 hash值,
sc -d com.dongbao.per.service.impl.org.PerOrgsServiceImpl | grep
classLoaderHash

#修改文件之后,使用mc命令, 将java文件编译成class,可以通过-c参数指定 classloader, -d 指定
#输出目录。
mc -c classloader /data/temp/PerOrgsServiceImpl.java -d /data/temp/

#热加载class
redefine -c classloader /data/temp/PerOrgsServiceImpl.class
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值