2.1 基础教程
环境:Windows10安装了linux子系统 ubuntu
下载arthas-demo.jar,在用java -jar 命令启动
wget https://alibaba.github.io/arthas/arthas-demo.jar
java -jar arthas-demo.jararthas-demo
是一个很简单的程序,它随机生成整数,再执行因式分解,把结果打印出来。如果生成的随机数是负数,则会打印提示信息。
打开一个新的linux客户端下载arthas-boot.jar
,再用java -jar
命令启动:
wget https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar arthas-boot
是Arthas
的启动程序,它启动后,会列出所有的Java进程,用户可以选择需要诊断的目标进程。
选择第一个进程,输入 1
,再Enter/回车
Attach成功之后,会打印Arthas LOGO。输入 help
可以获取到更多的帮助信息。
Dashboard
dashboard
命令可以查看当前系统的实时数据面板。输入 Q
或者 Ctrl+C
可以退出dashboard命令。
Thread
thread 1
命令会打印线程ID 1的栈。
Arthas支持管道,可以用 thread 1 | grep 'main('
查找到main class
。
可以看到main class
是demo.MathGame
:
$ thread 1 | grep 'main('
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
来连接。
彻底退出Arthasexit/quit
命令只是退出当前session,arthas server还在目标进程中运行。
想完全退出Arthas,可以执行 stop
命令。
本文只是简单介绍,感受一下少许命令。如果想很好的使用arthas。需要理解每个常用命令的含义。