ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

arthas常用命令整理

2021-10-24 11:04:14  阅读:421  来源: 互联网

标签:Arthas watch 常用命令 params arthas 整理 观察 方法 表达式


官网链接

Arthas Install — Arthas 3.5.4 文档Arthas Install — Arthas 3.5.4 文档

今天是1024程序员节。昨天研究了下arthas整理一下笔记

常用命令

watch watch — Arthas 3.5.4 文档

同时观察方法调用前和方法返回后
$ watch demo.MathGame primeFactors "{params,target,returnObj}" -x 2 -b -s -n 2

观察异常信息的例子
$ watch demo.MathGame primeFactors "{params[0],throwExp}" -e -x 2
观察方法入参和出参
"{params,returnObj}" -x 2 -b -s"{params,returnObj}" -x 2 -b -s


常用表达式 观察入参出参和异常
 "{params,returnObj,throwExp}" -x 2 -b -s -e
 

watch 的参数比较多,主要是因为它能在 4 个不同的场景观察对象

参数名称

参数说明

class-pattern

类名表达式匹配

method-pattern

方法名表达式匹配

express

观察表达式,默认值:{params, target, returnObj}

condition-express

条件表达式

[b]

方法调用之前观察 before

[e]

方法异常之后观察

[s]

方法返回之后观察

[f]

方法结束之后(正常返回和异常返回)观察

[E]

开启正则表达式匹配,默认为通配符匹配

[x:]

指定输出结果的属性遍历深度,默认为 1

这里重点要说明的是观察表达式,观察表达式的构成主要由 ognl 表达式组成,所以你可以这样写"{params,returnObj}",只要是一个合法的 ognl 表达式,都能被正常支持。

观察的维度也比较多,主要体现在参数 advice 的数据结构上。Advice 参数最主要是封装了通知节点的所有信息。请参考表达式核心变量中关于该节点的描述。

特别说明

  • watch 命令定义了4个观察事件点,即 -b 方法调用前,-e 方法异常后,-s 方法返回后,-f 方法结束后
  • 4个观察事件点 -b、-e、-s 默认关闭,-f 默认打开,当指定观察点被打开后,在相应事件点会对观察表达式进行求值并输出
  • 这里要注意方法入参和方法出参的区别,有可能在中间被修改导致前后不一致,除了 -b 事件点 params 代表方法入参外,其余事件都代表方法出参
  • 当使用 -b 时,由于观察事件点是在方法调用前,此时返回值或异常均不存在
  • 在watch命令的结果里,会打印出location信息。location有三种可能值:AtEnter,AtExit,AtExceptionExit。对应函数入口,函数正常return,函数抛出异常。

tt 命令

com.mb.wife.controller.HiController#hi

INDEX TIMESTAMP COST(ms) IS-RET IS-EXP OBJECT CLASS METHOD

-----------------------------------------------------------------------------------------------------------------------

1000 2021-10-23 22:14:27 0.4527 true false 0x6fd97fd1 HiController hi

1001 2021-10-23 22:14:38 0.157701 true false 0x6fd97fd1 HiController hi

1002 2021-10-23 22:14:44 0.9488 true false 0x6fd97fd1 HiController hi

查看详情

tt -i  1000

重放 重做一次调用 这是一个很赞的功能!

tt -i 1000 -p

在线调试地址

Arthas Tutorials

当在本地启动时,可以访问 http://127.0.0.1:8563/ ,通过浏览器来使用Arthas。

reset

Arthas在 watch/trace 等命令时,实际上是修改了应用的字节码,插入增强的代码。显式执行 reset 命令,可以清除掉这些增强代码。

退出Arthas

用 exit 或者 quit 命令可以退出Arthas。

退出Arthas之后,还可以再次用 java -jar arthas-boot.jar 来连接。

彻底退出Arthas

exit/quit命令只是退出当前session,arthas server还在目标进程中运行。

想完全退出Arthas,可以执行 stop 命令。

标签:Arthas,watch,常用命令,params,arthas,整理,观察,方法,表达式
来源: https://blog.csdn.net/maobois/article/details/120931048

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有