Arthas 是一个 Java 诊断程序 , Arthas 官方 已经很详细的描述了命令的使用 , 如果想整体学习可以查看.
而这一篇文档记录了从最开始接触到 Arthas 到逐步深入过程中的一些记录和感悟 , 整理成文档以便处理.
使用场景
// 官方文档 @ <https://arthas.aliyun.com/doc/quick-start.html>
// Step 1 :下载官方 JAR
wget <https://arthas.aliyun.com/arthas-boot.jar>
// Step 2 : 启动 arthas
java -jar arthas-boot.jar
// Step 3 : 选择对应的Java 进程 (PS : 启动后会显示所有的进程)
// Step 4 : 输入 dashboard , 查看当前进程信息
// 补充 : 其他主要的参数
- 通过thread命令来获取到MainClass : thread 1 | grep 'main('
- 通过 jad 反编译 : jad demo.MathGame
- 通过watch命令来查看返回值 : watch demo.MathGame primeFactors returnObj
复制代码
在很多命令中都涉及到 classLoader , 我们可以通过 classLoader 先获取到 hash 码 ,再查询具体的参数
// 查看 classLoader
classloader -l
// 在查看对象的时候通过 classLoader 获取对象
getstatic -c 3d4eac69 ClassName methodName
mc -c 327a647b /tmp/Test.java >> 通过 ClassLoader 加载
复制代码
Arthas 的初始操作不多 ,更多的应该是基于实际问题的处理,后续文章会陆续往这个方向思考。