2.1 基础教程

环境:Windows10安装了linux子系统 ubuntu
下载arthas-demo.jar,在用java -jar 命令启动
wget https://alibaba.github.io/arthas/arthas-demo.jar
java -jar arthas-demo.jar
arthas-demo是一个很简单的程序,它随机生成整数,再执行因式分解,把结果打印出来。如果生成的随机数是负数,则会打印提示信息。

打开一个新的linux客户端下载arthas-boot.jar,再用java -jar命令启动:
wget https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar
arthas-bootArthas的启动程序,它启动后,会列出所有的Java进程,用户可以选择需要诊断的目标进程。
选择第一个进程,输入 1 ,再Enter/回车

Attach成功之后,会打印Arthas LOGO。输入 help 可以获取到更多的帮助信息。
基础教程 - 图1

Dashboard

dashboard 命令可以查看当前系统的实时数据面板。输入 Q 或者 Ctrl+C 可以退出dashboard命令。

Thread

thread 1 命令会打印线程ID 1的栈。
Arthas支持管道,可以用 thread 1 | grep 'main(' 查找到main class
可以看到main classdemo.MathGame

  1. $ thread 1 | grep 'main('
  2. at demo.MathGame.main(MathGame.java:17)

Sc

可以通过 sc 命令来查找JVM里已加载的类:sc -d *MathGame

Jad

可以通过 jad 命令来反编译代码:jad demo.MathGame

Watch

通过watch命令可以查看函数的参数/返回值/异常信息。watch demo.MathGame primeFactors returnObj输入 Q 或者 Ctrl+C 退出watch命令。

Exit/Stop

退出Arthas
exit 或者 quit 命令可以退出Arthas。
退出Arthas之后,还可以再次用 java -jar arthas-boot.jar 来连接。
彻底退出Arthas
exit/quit命令只是退出当前session,arthas server还在目标进程中运行。
想完全退出Arthas,可以执行 stop 命令。

本文只是简单介绍,感受一下少许命令。如果想很好的使用arthas。需要理解每个常用命令的含义。