dump

dump已加载类的字节码到特定目录

命令选项 描述
-c, --code <hash> 指定ClassLoader的哈希值
--classLoaderClass <name> 指定ClassLoader的类名
-d, --directory <path> dump字节码的路径
-l, --limit <number> 限制dump字节码类的个数,默认50
-E, --regex 开启正则表达式匹配,默认是通配符匹配
-h, --help 帮助
<class-pattern> 类模式字符串

示例

# dump指定类及其所有子类 不指定目录默认在home/logs目录
[arthas@14064]$ dump java.util.concurrent.locks.ReentrantLock
HASHCODE  CLASSLOADER  LOCATION
null                   C:\Users\A\logs\arthas\classdump\java\util\concurrent\locks\ReentrantLock.class
null                   C:\Users\A\logs\arthas\classdump\java\util\concurrent\ConcurrentHashMap$Segment.class

# 指定目录dump
[arthas@14064]$ dump -d /tmp java.util.concurrent.locks.ReentrantLock

# 指定ClassLoader dump 这里指定的Arthas的ClassLoader
[arthas@14064]$ dump -d /tmp -c 435181e6 java.util.List
HASHCODE  CLASSLOADER                                                        LOCATION
435181e6  +-com.taobao.arthas.agent.ArthasClassloader@435181e6               C:\Users\A\logs\arthas\classdump\com.taobao.arthas.agent.ArthasClassloader-435181e6\org\benf\
            +-jdk.internal.loader.ClassLoaders$PlatformClassLoader@782458af  cfr
                                                                          eader\bytecode\analysis\parse\wildcard\WildcardMatch$ListWildcard.class
435181e6  +-com.taobao.arthas.agent.ArthasClassloader@435181e6               C:\Users\A\logs\arthas\classdump\com.taobao.arthas.agent.ArthasClassloader-435181e6\com\aliba
            +-jdk.internal.loader.ClassLoaders$PlatformClassLoader@782458af  ba\arthas\deps\ch\qos\logback\core\util\COWArrayList.class
435181e6  +-com.taobao.arthas.agent.ArthasClassloader@435181e6               C:\Users\A\logs\arthas\classdump\com.taobao.arthas.agent.ArthasClassloader-435181e6\org\benf\
            +-jdk.internal.loader.ClassLoaders$PlatformClassLoader@782458af  cfr
                                                                          eader\bytecode\analysis\types\StackTypes.class
435181e6  +-com.taobao.arthas.agent.ArthasClassloader@435181e6               C:\Users\A\logs\arthas\classdump\com.taobao.arthas.agent.ArthasClassloader-435181e6\com\aliba
            +-jdk.internal.loader.ClassLoaders$PlatformClassLoader@782458af  ba\arthas\deps\ch\qos\logback\classic\spi\TurboFilterList.class