import{_ as n,o as t,c as i,a as e,b as l,e as s,d,r as c}from"./app.391b0e4e.js";const o={},r=e("h1",{id:"sc",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#sc","aria-hidden":"true"},"#"),s(" sc")],-1),m={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-sc",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"sc",-1),p=s(" online tutorial"),v=d(`
TIP
Search classes loaded by JVM.
sc
stands for search class. This command can search all possible classes loaded by JVM and show their information. The supported options are: [d]
\u3001[E]
\u3001[f]
and [x:]
.
Name | Specification |
---|---|
class-pattern | pattern for the class name |
method-pattern | pattern for the method name |
[d] | print the details of the current class, including its code source, class specification, its class loader and so on. If a class is loaded by more than one class loader, then the class details will be printed several times |
[E] | turn on regex match, the default behavior is wildcards match |
[f] | print the fields info of the current class, MUST be used with -d together |
[x:] | specify the depth of recursive traverse the static fields, the default value is '0' - equivalent to use toString to output |
[c:] | The hash code of the special class's classLoader |
[classLoaderClass:] | The class name of the ClassLoader that executes the expression. |
[n:] | Maximum number of matching classes with details (100 by default) |
TIP
class-patten supports full qualified class name, e.g. com.taobao.test.AAA and com/taobao/test/AAA. It also supports the format of 'com/taobao/test/AAA', so that it is convenient to directly copy class name from the exception stack trace without replacing '/' to '.'.
TIP
sc
turns on matching sub-class match by default, that is, sc
will also search the sub classes of the target class too. If exact-match is desired, pls. use options disable-sub-class true
.
Wildcards match search
$ sc demo.*
demo.MathGame
Affect(row-cnt:1) cost in 55 ms.
View class details
$ sc -d demo.MathGame
class-info demo.MathGame
code-source /private/tmp/math-game.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.
View class fields
$ sc -d -f demo.MathGame
class-info demo.MathGame
code-source /private/tmp/math-game.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.