diff --git a/arthas-vmtool/README_CN.md b/arthas-vmtool/README_CN.md deleted file mode 100644 index 4ea4b8795..000000000 --- a/arthas-vmtool/README_CN.md +++ /dev/null @@ -1,62 +0,0 @@ -##step1 在您的pom.xml中增加profile配置 -``` - - - - macos - - - mac - - - - macos - - - - - - linux - - - linux - - - - linux - - - - - - windows - - - windows - - - - windows - - - -``` -##step2 在您的pom.xml中引入依赖 -PS:一定要配置好profile,不然无法自动生成``配置。 -``` - - com.taobao.arthas - mana-pool-analyzer - ${arthas.vision} - ${os_family}-${os.arch} - -``` - -##step3 如果没有合适的版本 -1. 如果是32位的操作系统,不好意思,目前暂不支持。 - -2. 如果是64位操作系统,请先尝试`mvn clean compile package install -DskipTests=true -U`把依赖安装到本地; - -3. 如果报错,请先确保您本地的g++编译器能够正常工作,再重新尝试`mvn clean compile package install -DskipTests=true -U`; - -如有问题请联系`1936978077@qq.com`。 diff --git a/core/src/main/java/com/taobao/arthas/core/command/monitor200/VmToolCommand.java b/core/src/main/java/com/taobao/arthas/core/command/monitor200/VmToolCommand.java index 35e46ec0e..6f7dd468d 100644 --- a/core/src/main/java/com/taobao/arthas/core/command/monitor200/VmToolCommand.java +++ b/core/src/main/java/com/taobao/arthas/core/command/monitor200/VmToolCommand.java @@ -48,7 +48,9 @@ import arthas.VmTool; + " vmtool --action getInstances --className demo.MathGame\n" + " vmtool --action getInstances --className demo.MathGame --express 'instances.length'\n" + " vmtool --action getInstances --className demo.MathGame --express 'instances[0]'\n" + + " vmtool --action getInstances --className demo.MathGame -x 2\n" + " vmtool --action getInstances --className java.lang.String --limit 10\n" + + " vmtool --action getInstances --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader --className org.springframework.context.ApplicationContext\n" + " vmtool --action forceGc\n" + Constants.WIKI + Constants.WIKI_HOME + "vmtool") //@formatter:on @@ -62,7 +64,7 @@ public class VmToolCommand extends AnnotatedCommand { private String hashCode = null; private String classLoaderClass; /** - * default value 2 + * default value 1 */ private int expand; @@ -107,8 +109,8 @@ public class VmToolCommand extends AnnotatedCommand { } @Option(shortName = "x", longName = "expand") - @Description("Expand level of object (2 by default)") - @DefaultValue("2") + @Description("Expand level of object (1 by default)") + @DefaultValue("1") public void setExpand(int expand) { this.expand = expand; } @@ -154,6 +156,10 @@ public class VmToolCommand extends AnnotatedCommand { Instrumentation inst = process.session().getInstrumentation(); if (VmToolAction.getInstances.equals(action)) { + if (className == null) { + process.end(-1, "The className option cannot be empty!"); + return; + } ClassLoader classLoader = ClassLoader.getSystemClassLoader(); if (hashCode == null && classLoaderClass != null) { List matchedClassLoaders = ClassLoaderUtils.getClassLoaderByClassName(inst, @@ -177,7 +183,7 @@ public class VmToolCommand extends AnnotatedCommand { } List> matchedClasses = new ArrayList>( - SearchUtils.searchClass(inst, className, false, hashCode)); + SearchUtils.searchClassOnly(inst, className, false, hashCode)); int matchedClassSize = matchedClasses.size(); if (matchedClassSize == 0) { process.end(-1, "Can not find class by class name: " + className + ".");