【arthas】常用的一些命令

arthas排查问题:

使用中会用到的命令:

1、jad反编译,尝试反编译后修改再热部署,失败了,后面有时间再试下
1)反编译
$ jad --source-only *.DownLoadRuleConsumer > /tmp/DownLoadRuleConsumer.java
2)修改文件
$ vim /tmp/UserController.java
3)查找加载的 ClassLoader
$ $ sc -d *DownLoadRuleConsumer | grep classLoaderHash
 classLoaderHash   6bc28484
4)编译java文件到class文件				(java->class)
$ mc -c 506c589e /tmp/UserController.java -d /tmp
问题:Ⅰ实践中,直接编译jad出来的文件,会报错提示java文件格式异常   Ⅱlog4j的注解不生效,提示log未找到
因此:直接使用idea项目里面改了java文件,传到服务器上面,修改后用arthas编译生成临时文件
5)热更新   (替换class)
$ redefine /tmp/com/example/demo/arthas/user/UserController.class
redefine success, size: 1


2、watch com.xxx.xxx.xxxService 方法名 "{params, returnObj}" -x 5 -b

3、看方法执行时长
trace --skipJDKMethod false demo.MathGame run


小技巧:

1、获取hutool的SpringUtil类的id,这个id通常不会变化,保存着就行
sc -d cn.hutool.extra.spring.SpringUtil

2、通过hutool获取bean,来执行测试方法:
ognl -c 506c589e '#obj='',
@cn.hutool.extra.spring.SpringUtil@getBean('policySetService').listEnableCloudPolicySetByPodIds(#obj)'

[入参可以再优化,后面要看下怎么传递]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值