排查函数调用异常

查看 参数/异常

1
watch com.example.demo.arthas.user.UserController * '{params, throwExp}' -x 2
  1. 第一个参数是类名,支持通配
  2. 第二个参数是函数名,支持通配

条件表达式

watch 命令支持在第 4 个参数里写条件表达式,比如:

1
watch com.example.demo.arthas.user.UserController * returnObj 'params[0] > 100'

当返回参数>100 才在控制台打印

当异常时捕获

watch 命令支持-e 选项,表示只捕获抛出异常时的请求:

1
watch com.example.demo.arthas.user.UserController * "{params[0],throwExp}" -e

按照耗时进行过滤

watch 命令支持按请求耗时进行过滤,比如:

1
watch com.example.demo.arthas.user.UserController * '{params, returnObj}' '#cost>200'

热更新代码

jad 反编译 UserController

1
jad --source-only com.example.demo.arthas.user.UserController > /tmp/UserController.java