Appearance
Arthas线上排查经验
About 236 wordsLess than 1 minute
2022-06-14
介绍
Arthas 是 Alibaba 开源的 Java 诊断工具。
快速安装
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar --repo-mirror aliyun --use-http
连接已启动的arthas
telnet localhost 3658
常用场景
反编译源码
jad com.example.test
执行静态代码
比如要看看临时目录路径
System.getProperty("java.io.tmpdir")
那么需要先获取java.lang.System
的类加载器hashcode,然后再执行代码
指定类加载器
使用-c {hashcode}
指定类加载器,如果是Bootstrap可以不指定。
因为hashcode不是固定的,所以用--classLoaderClass {classLoaderClassName}
指定类加载器可以保证唯一。
[arthas@1]$ sc -d java.lang.System
class-info java.lang.System
code-source
name java.lang.System
isInterface false
isAnnotation false
isEnum false
isAnonymousClass false
isArray false
isLocalClass false
isMemberClass false
isPrimitive false
isSynthetic false
simple-name System
modifier final,public
annotation
interfaces
super-class +-java.lang.Object
class-loader
classLoaderHash null
Affect(row-cnt:1) cost in 39 ms.
[arthas@1]$ ognl '@java.lang.System@getProperty("java.io.tmpdir")'
@String[/tmp]