线上调试神器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

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

相关推荐
南客先生几秒前
马架构的Netty、MQTT、CoAP面试之旅
java·mqtt·面试·netty·coap
Minyy113 分钟前
SpringBoot程序的创建以及特点,配置文件,LogBack记录日志,配置过滤器、拦截器、全局异常
xml·java·spring boot·后端·spring·mybatis·logback
百锦再3 分钟前
Java与Kotlin在Android开发中的全面对比分析
android·java·google·kotlin·app·效率·趋势
武昌库里写JAVA1 小时前
39.剖析无处不在的数据结构
java·vue.js·spring boot·课程设计·宠物管理
Nelson_hehe3 小时前
Java基础第四章、面向对象
java·语法基础·面向对象程序设计
Thomas_YXQ4 小时前
Unity3D Lua集成技术指南
java·开发语言·驱动开发·junit·全文检索·lua·unity3d
ShiinaMashirol4 小时前
代码随想录打卡|Day27(合并区间、单调递增的数字、监控二叉树)
java·算法
东阳马生架构6 小时前
Nacos简介—3.Nacos的配置简介
java
北极的企鹅886 小时前
XML内容解析成实体类
xml·java·开发语言
oioihoii6 小时前
C++23 中 static_assert 和 if constexpr 的窄化布尔转换
java·jvm·c++23