用arthas查看JVM已加载的类及方法信息

1、sc:“Search-Class” 的简写,这个命令能搜索出所有已经加载到 JVM 中的 Class 信息,这个命令支持的参数有 [d][E][f] 和 [x:]
[d]输出当前类的详细信息,包括这个类所加载的原始文件来源、类的声明、加载的ClassLoader等详细信息。
如果一个类被多个ClassLoader所加载,则会出现多次
[E]开启正则表达式匹配,默认为通配符匹配
[f]输出当前类的成员变量信息(需要配合参数-d一起使用)
[x:]指定输出静态变量时属性的遍历深度,默认为 0,即直接使用 toString 输出
  • 模糊搜索
    $ sc demo.*
    demo.MathGame
    Affect(row-cnt:1) cost in 55 ms.
  • 打印类的详细信息
    $ sc -d demo.MathGame
    class-info demo.MathGame
    code-source /private/tmp/arthas-demo.jar
    name demo.MathGame
    isInterface false
    isAnnotation false
    isEnum false
    isAnonymousClass false
    isArray false
    isLocalClass false
    isMemberClass false
    isPrimitive false
    isSynthetic false
    simple-name MathGame
    modifier public
    annotation
    interfaces
    super-class +-java.lang.Object
    class-loader +-sun.misc.Launcher$AppClassLoader@3d4eac69
    +-sun.misc.Launcher$ExtClassLoader@66350f69
    classLoaderHash 3d4eac69
    Affect(row-cnt:1) cost in 875 ms.
  • 打印出类的Field信息

    $ sc -d -f demo.MathGame

    class-info demo.MathGame

    code-source /private/tmp/arthas-demo.jar

    name demo.MathGame

    isInterface false

    isAnnotation false

    isEnum false

    isAnonymousClass false

    isArray false

    isLocalClass false

    isMemberClass false

    isPrimitive false

    isSynthetic false

    simple-name MathGame

    modifier public

    annotation

    interfaces

    super-class +-java.lang.Object

    class-loader +-sun.misc.Launcher$AppClassLoader@3d4eac69

    +-sun.misc.Launcher$ExtClassLoader@66350f69

    classLoaderHash 3d4eac69

    fields modifierprivate,static

    type java.util.Random

    name random

    value java.util.Random@522b4

    08a


    modifierprivate

    type int

    name illegalArgumentCount


    Affect(row-cnt:1) cost in 19 ms.
    2、sm:“Search-Method” 的简写,这个命令能搜索出所有已经加载了 Class 信息的方法信息。sm 命令只能看到由当前类所声明 (declaring) 的方法,父类则无法看到。
  • [d]展示每个方法的详细信息
    [E]开启正则表达式匹配,默认为通配符匹配

posted on 2019-12-12 08:56  时间朋友  阅读(15398)  评论(0编辑  收藏  举报

导航