如何使用Arthas抓包
【摘要】 转载自arthas网: https://segmentfault.com/a/1190000014618329 watch 的参数比较多,主要是因为它能在 4 个不同的场景观察对象参数名称参数说明class-pattern类名表达式匹配method-pattern方法名表达式匹配express观察表达式condition-express条件表达式[b]在方法调用之前观察[e]在方法异常之后观...
转载自arthas网: https://segmentfault.com/a/1190000014618329
watch 的参数比较多,主要是因为它能在 4 个不同的场景观察对象
参数名称 | 参数说明 |
---|---|
class-pattern | 类名表达式匹配 |
method-pattern | 方法名表达式匹配 |
express | 观察表达式 |
condition-express | 条件表达式 |
[b] | 在方法调用之前观察 |
[e] | 在方法异常之后观察 |
[s] | 在方法返回之后观察 |
[f] | 在方法结束之后(正常返回和异常返回)观察 |
[E] | 开启正则表达式匹配,默认为通配符匹配 |
[x:] | 指定输出结果的属性遍历深度,默认为 1 |
这里重点要说明的是观察表达式,观察表达式的构成主要由 ognl 表达式组成,所以你可以这样写"{params,returnObj}"
观察方法出参和返回值
watch demo.MathGame primeFactors "{params,returnObj}" -x 2
观察方法入参,加上 -b 参数
watch demo.MathGame primeFactors "{params,returnObj}" -x 2 -b
同时观察方法调用前和调用后
watch demo.MathGame primeFactors "{params,target,returnObj}" -x 2 -b -s -n 2
参数里
-n 2
,表示只执行两次这里输出结果中,第一次输出的是方法调用前的观察表达式的结果,第二次输出的是方法返回后的表达式的结果
结果的输出顺序和事件发生的先后顺序一致,和命令中
-s -b
的顺序无关
条件表达式
watch demo.MathGame primeFactors "{params[0],target}" "params[0]<0"
捕获异常
watch demo.MathGame primeFactors "{params[0],throwExp}" -e -x 2
利用耗时过滤
watch demo.MathGame primeFactors '{params, returnObj}' '#cost>200' -x 2
观察当前对象中的属性,‘target’ 关键字表示当前对象
watch demo.MathGame primeFactors 'target'
访问某个属性
watch demo.MathGame primeFactors 'target.illegalArgumentCount'
参考文献: https://segmentfault.com/a/1190000014618329
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)