Arthas tt 系列作用
方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测
一、 tt -t 作用和一般用法
tt -t 一般用于监控某一个方法的调用记录,如果调用多此会出现多条记录,一般的用法如下
tt -t org.aurora.cw.BlueBridgeCup oneLineCut
释义
org.aurora.cw.BlueBridgeCup 为我自己项目下某一个类所在路径,我要监控这个路径下这个类的 oneLineCut 方法 ,中间的空格不能少
执行后出现两行等待的字样,当出现调用后会出现调用记录
出现调用后
其中第一列为调用记录的索引 可以通过此值来进一步查看这个方法的入参与结果等
进一步查看时使用 tt -i
为了下一步此时可以使用ctrl + c 或者 按 q 退出执行下一步操作
二、 tt -i 的使用
tt -i 中 -i 表示要选择某一个记录的索引来监控
上面例子可以如下:
tt -i
进一步查看某一个入参详细内容可以例如下面
tt -i 1001 -w 'params[1]'
- -i 指定我要看的记录索引
- -w 说明我要使用 ognl表达式
ognl 表达式
大致可以包括下几个:
target 目标对象
params 入参
returnObj 出参
throwExp 异常
等
可以通过命令 tt -help 查看帮助选项
执行后如下
查看返回值如下:
即 tt -i 索引值 -w ‘returnObj’
watch 系列作用
也用于监控方法的调用,但是有些场景不能满足要求,此时使用 tt 系列
watch 一般使用方法如下
watch 全路径类名 方法名 "{params,returnObj,throwExp}" -x 3
params 表示要查看入参,
returnObj 表示要查看返回值,
throwExp 为抛出的异常
-x 表示要遍历属性的深度,默认为1 例如返回的结果或者入参一般为某一个类,然而类内部可能还有其他类嵌套在里面此时这个参数就有用了。