线上调试神器Arthas的watch命令简易教程

当你看到这篇文章的时候,我们默认你已经对Arthas有一定的了解和基础的使用。该文章只是对watch命令做一个简单的介绍以及附上案例。

watch 命令是阿里开源的 Java 诊断工具 Arthas 提供的一个功能,用于在运行时观察某个方法的参数和返回值,甚至可以观察方法的异常情况。通过 watch 命令,你可以实时监控指定方法的执行情况,从而帮助你诊断和分析问题。以下是 watch 命令的一般用法:

bash 复制代码
watch com.example.MyClass myMethod "{params,returnObj,throwExp}"

其中:

  • com.example.MyClass:表示类的全限定名,即要监控的方法所在的类。
  • myMethod:表示要监控的方法名。
  • "{params,returnObj,throwExp}":表示你希望观察的内容。你可以根据需要从以下三个选项中选择:
  • params:方法的参数。
  • returnObj:方法的返回值。
  • throwExp:方法抛出的异常。

以下是一个实际的示例:

假设你有一个简单的 Java 类 com.example.MyClass,其中有一个方法 divide:

java 复制代码
package com.example;

public class MyClass {
    public int divide(int dividend, int divisor) {
        return dividend / divisor;
    }
}

你可以使用 Arthas 的 watch 命令来观察这个方法的参数和返回值:

bash 复制代码
watch com.example.MyClass divide "{params,returnObj}"

当你执行这个命令后,每当 divide 方法被调用时,Arthas 会显示参数和返回值,类似如下的输出:

java 复制代码
Press Ctrl+C to abort.
1. Watching com.example.MyClass.divide(int,int)
2. 
3. Started watch successfully, will print the return value of com.example.MyClass.divide
4. when the method returns.
5. The return object is (Ljava/lang/Integer;)0

这样,你就可以在方法执行时观察参数和返回值,帮助你分析问题和调试代码。

相关推荐
2402_857589363 分钟前
SpringBoot框架:作业管理技术新解
java·spring boot·后端
HBryce247 分钟前
缓存-基础概念
java·缓存
一只爱打拳的程序猿21 分钟前
【Spring】更加简单的将对象存入Spring中并使用
java·后端·spring
杨荧23 分钟前
【JAVA毕业设计】基于Vue和SpringBoot的服装商城系统学科竞赛管理系统
java·开发语言·vue.js·spring boot·spring cloud·java-ee·kafka
minDuck25 分钟前
ruoyi-vue集成tianai-captcha验证码
java·前端·vue.js
为将者,自当识天晓地。43 分钟前
c++多线程
java·开发语言
daqinzl1 小时前
java获取机器ip、mac
java·mac·ip
激流丶1 小时前
【Kafka 实战】如何解决Kafka Topic数量过多带来的性能问题?
java·大数据·kafka·topic
Themberfue1 小时前
Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized
java·开发语言·线程·多线程·synchronized·
让学习成为一种生活方式1 小时前
R包下载太慢安装中止的解决策略-R语言003
java·数据库·r语言