Arthas watch (方法执行数据观测)

@[toc]
二、命令列表
2.3 monitor/watch/trace/stack/tt 相关
2.3.5 watch (方法执行数据观测)
提示
函数执行数据观测
让你能方便的观察到指定函数的调用情况。能观察到的范围为:
返回值
、抛出异常
、入参
,通过编写 OGNL 表达式进行对应变量的查看。
参数说明:
特别说明:
watch 命令定义了 4 个观察事件点,即
-b
函数调用前,-e
函数异常后,-s
函数返回后,-f
函数结束后4 个观察事件点
-b
、-e
、-s
默认关闭,-f
默认打开,当指定观察点被打开后,在相应事件点会对观察表达式进行求值并输出这里要注意
函数入参
和函数出参
的区别,有可能在中间被修改导致前后不一致,除了-b
事件点params
代表函数入参外,其余事件都代表函数出参当使用
-b
时,由于观察事件点是在函数调用前,此时返回值或异常均不存在在 watch 命令的结果里,会打印出
location
信息。location
有三种可能值:AtEnter
,AtExit
,AtExceptionExit
。对应函数入口,函数正常 return,函数抛出异常。
举例 1:监控方法
基础语法
:watch 全路径类名 方法名 {params,returnObj,throwExp} -x 8
举例 2:同时观察函数调用前和函数返回后
基础语法
:watch 全路径类名 方法名 {params,returnObj,throwExp} -x 8 -b -s
代码:请求前传入 ouValues 参数,方法返回的也是这个参数
本人其他相关文章链接
1.Arthas 全攻略:让调试变得简单2.Arthas dashboard(当前系统的实时数据面板)3.Arthas thread(查看当前JVM的线程堆栈信息)4.Arthas jvm(查看当前JVM的信息)5.Arthas sysprop(查看和修改JVM的系统属性)6.Arthas sysenv(查看JVM的环境变量)7.Arthas vmoption(查看和修改 JVM里诊断相关的option)8.Arthas getstatic(查看类的静态属性 )9.Arthas heapdump(dump java heap, 类似 jmap 命令的 heap dump 功能)10.Arthas logger(查看 logger 信息,更新 logger level)11.Arthas mbean(查看 Mbean 的信息)12.Arthas memory(查看 JVM 内存信息)13.Arthas ognl(执行ognl表达式)14.Arthas perfcounter(查看当前 JVM 的 Perf Counter 信息)15.Arthas vmtool(从 jvm 里查询对象,执行 forceGc)16.Arthas jad(字节码文件反编译成源代码 )17.Arthas mc(Memory Compiler/内存编译器 )18.Arthas redefine(加载外部的.class文件,redefine到JVM里 )19.Arthas classloader (查看 classloader 的继承树,urls,类加载信息)20.Arthas sc(查看JVM已加载的类信息 )21.Arthas sm(查看已加载类的方法信息 )22.Arthas monitor(方法执行监控)23.Arthas stack (输出当前方法被调用的调用路径)24.Arthas trace (方法内部调用路径,并输出方法路径上的每个节点上耗时)25.Arthas tt(方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测)26.Arthas watch (方法执行数据观测)27.Arthas profiler(使用async-profiler对应用采样,生成火焰图)
版权声明: 本文为 InfoQ 作者【刘大猫】的原创文章。
原文链接:【http://xie.infoq.cn/article/0ff9895d998dd385b806dce9a】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论