arthas watch命令能看方法中具体某一步吗
时间: 2024-09-12 13:14:58 浏览: 108
Arthas 的 `watch` 命令是一个强大的监控工具,它可以用来观察 Java 应用程序中方法的执行情况,包括方法调用参数、返回值、异常信息以及方法执行耗时等。使用 `watch` 命令可以实现对方法中具体某一步的观察,因为它允许你监控方法在执行过程中的任何阶段。
`watch` 命令的基本语法如下:
```
watch 类全路径 方法名 '{条件表达式}' '{执行表达式}'
```
- `类全路径`:指定要监控的类的全限定名。
- `方法名`:要监控的方法名。
- `条件表达式`:可选,用来指定触发条件的表达式。
- `执行表达式`:监控到方法调用时会执行的表达式。
当方法满足条件表达式时,会执行执行表达式,并将结果打印出来。执行表达式可以获取到方法调用的参数、返回值、抛出的异常等信息,这样你就可以观察到方法中的具体执行步骤。
例如,如果你想监控 `com.example.TestClass` 类中的 `testMethod` 方法,并且只关注当方法返回值大于0时的情况,可以使用如下命令:
```
watch com.example.TestClass testMethod '{returnObj > 0}' '{}'
```
这将输出满足条件的 `testMethod` 方法的返回值。
相关问题
arthas常用命令
以下是Arthas常用命令的介绍和用例:
1. help命令:查看Arthas支持的所有命令和用法。
```shell
help
```
2. jad命令:反编译指定类的字节码。
```shell
jad com.example.demo.DemoController
```
3. watch命令:监控指定方法的参数和返回值。
```shell
watch com.example.demo.DemoService hello "{params,returnObj}"
```
4. trace命令:跟踪指定方法的调用链。
```shell
trace com.example.demo.DemoService hello
```
5. monitor命令:监控指定方法的调用次数、耗时和异常信息。
```shell
monitor com.example.demo.DemoService hello
```
6. tt命令:统计指定方法的调用次数、耗时和异常信息,并以Top列表的形式展示。
```shell
tt -n 5 com.example.demo.DemoService hello
```
7. thread命令:查看当前线程的堆栈信息。
```shell
thread
```
8. heapdump命令:生成堆转储文件,用于分析内存问题。
```shell
heapdump /tmp/dump.hprof
```
9. dashboard命令:查看应用的实时监控信息。
```shell
dashboard
```
arthas watch 变量带参数
你可以使用以下命令来在 Arthas 中监视带参数的变量:
```
watch com.example.MyClass myMethod params[0]
```
其中,`com.example.MyClass` 是你要监视的类的全限定名,`myMethod` 是该类中的一个方法名,`params[0]` 表示监视该方法的第一个参数。你可以根据需要替换这些参数,以监视你感兴趣的变量。
阅读全文