1、sc:
“Search-Class” 的简写,这个命令能搜索出所有已经加载到 JVM 中的 Class 信息,这个命令支持的参数有
[d]
、
[E]
、
[f]
和
[x:]
。
[d] | 输出当前类的详细信息,包括这个类所加载的原始文件来源、类的声明、加载的ClassLoader等详细信息。 如果一个类被多个ClassLoader所加载,则会出现多次 |
[E] | 开启正则表达式匹配,默认为通配符匹配 |
[f] | 输出当前类的成员变量信息(需要配合参数-d一起使用) |
[x:] | 指定输出静态变量时属性的遍历深度,默认为 0,即直接使用 toString 输出 |
- 模糊搜索
$ sc demo.*demo.MathGameAffect(row-cnt:1) cost in 55 ms. - 打印类的详细信息
$ sc -d demo.MathGameclass-info demo.MathGamecode-source /private/tmp/arthas-demo.jarname demo.MathGameisInterface falseisAnnotation falseisEnum falseisAnonymousClass falseisArray falseisLocalClass falseisMemberClass falseisPrimitive falseisSynthetic falsesimple-name MathGamemodifier publicannotationinterfacessuper-class +-java.lang.Objectclass-loader +-sun.misc.Launcher $AppClassLoader@3d4eac69+-sun.misc.Launcher $ExtClassLoader@66350f69classLoaderHash 3d4eac69Affect(row-cnt:1) cost in 875 ms. - 打印出类的Field信息
$ sc -d -f demo.MathGameclass-info demo.MathGamecode-source /private/tmp/arthas-demo.jarname demo.MathGameisInterface falseisAnnotation falseisEnum falseisAnonymousClass falseisArray falseisLocalClass falseisMemberClass falseisPrimitive falseisSynthetic falsesimple-name MathGamemodifier publicannotationinterfacessuper-class +-java.lang.Objectclass-loader +-sun.misc.Launcher $AppClassLoader@3d4eac69+-sun.misc.Launcher $ExtClassLoader@66350f69classLoaderHash 3d4eac69fields modifierprivate,statictype java.util.Randomname randomvalue java.util.Random@522b408amodifierprivatetype intname illegalArgumentCountAffect(row-cnt:1) cost in 19 ms.2、sm: “Search-Method” 的简写,这个命令能搜索出所有已经加载了 Class 信息的方法信息。sm
命令只能看到由当前类所声明 (declaring) 的方法,父类则无法看到。 -
[d] 展示每个方法的详细信息 [E] 开启正则表达式匹配,默认为通配符匹配