03-Arthas中class或classloader相关命令

0 学习目录

  1. 01-Arthas安装与快速入门
  2. 02-Arthas中JVM相关命令
  3. 03-Arthas中class或classloader相关命令
  4. 04-Arthas中方法相关命令
  5. 05-Arthas常用实战积累

1 sc(Search Class)

1.1 作用

查看JVM已加载的类信息,“Search-Class” 的简写,这个命令能搜索出所有已经加载到 JVM 中的 Class 信息,这个命令支持的参数有 [d][E][f][x:]

1.2 参数说明

参数名称 参数说明
class-pattern 类名表达式匹配
method-pattern 方法名表达式匹配
[d] 输出当前类的详细信息,包括这个类所加载的原始文件来源、类的声明、加载的ClassLoader等详细信息。 如果一个类被多个ClassLoader所加载,则会出现多次
[E] 开启正则表达式匹配,默认为通配符匹配
[f] 输出当前类的成员变量信息(需要配合参数-d一起使用)
[x:] 指定输出静态变量时属性的遍历深度,默认为 0,即直接使用 toString 输出
[c:] 指定class的 ClassLoader 的 hashcode
[classLoaderClass:] 指定执行表达式的 ClassLoader 的 class name
[n:] 具有详细信息的匹配类的最大数量(默认为100)
  • class-pattern支持全限定名,如com.taobao.test.AAA,也支持com/taobao/test/AAA这样的格式,这样,我们从异常堆栈里面把类名拷贝过来的时候,不需要在手动把/替换为.啦。
  • sc 默认开启了子类匹配功能,也就是说所有当前类的子类也会被搜索出来,想要精确的匹配,请打开options disable-sub-class true开关

1.3 使用参考

  1. 打印出包下所有的类名

    [arthas@28896]$ sc demo.*
    demo.MathGame
    Affect(row-cnt:1) cost in 7 ms.
    
  2. 打印类的详细信息

    [arthas@28896]$ sc -d demo.MathGame 
     class-info        demo.MathGame                                                                                                                                                                                          
     code-source       /home/ligen/.arthas/lib/3.4.6/arthas/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@70dea4e      #类加载器                                                                                                                                                         
                         +-sun.misc.Launcher$ExtClassLoader@7d4991ad                                                                                                                                                          
     classLoaderHash   70dea4e              #类加载器hash                                                                                                                                                                                       
    
    Affect(row-cnt:1) cost in 8 ms.
    
    
  3. 打印出类的Field信息

    [arthas@28896]$ sc -d -f demo.MathGame 
     class-info        demo.MathGame                                                                                                                                                                                          
     code-source       /home/ligen/.arthas/lib/3.4.6/arthas/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                                                                                                                                                                                                 
     annotati
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值