public class sun.instrument.InstrumentationImpl implements java.lang.instrument.Instrumentation
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.instrument.InstrumentationImpl
super_class: java.lang.Object
{
private final sun.instrument.TransformerManager mTransformerManager;
descriptor: Lsun/instrument/TransformerManager;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private sun.instrument.TransformerManager mRetransfomableTransformerManager;
descriptor: Lsun/instrument/TransformerManager;
flags: (0x0002) ACC_PRIVATE
private final long mNativeAgent;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean mEnvironmentSupportsRedefineClasses;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean mEnvironmentSupportsRetransformClassesKnown;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean mEnvironmentSupportsRetransformClasses;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final boolean mEnvironmentSupportsNativeMethodPrefix;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "instrument"
invokestatic java.lang.System.loadLibrary:(Ljava/lang/String;)V
1: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(long, boolean, boolean);
descriptor: (JZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new sun.instrument.TransformerManager
dup
iconst_0
invokespecial sun.instrument.TransformerManager.<init>:(Z)V
putfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
2: aload 0
aconst_null
putfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
3: aload 0
lload 1
putfield sun.instrument.InstrumentationImpl.mNativeAgent:J
4: aload 0
iload 3
putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRedefineClasses:Z
5: aload 0
iconst_0
putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClassesKnown:Z
6: aload 0
iconst_0
putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClasses:Z
7: aload 0
iload 4
putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsNativeMethodPrefix:Z
8: return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/instrument/InstrumentationImpl;
0 9 1 nativeAgent J
0 9 3 environmentSupportsRedefineClasses Z
0 9 4 environmentSupportsNativeMethodPrefix Z
MethodParameters:
Name Flags
nativeAgent
environmentSupportsRedefineClasses
environmentSupportsNativeMethodPrefix
public void addTransformer(java.lang.instrument.ClassFileTransformer);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokevirtual sun.instrument.InstrumentationImpl.addTransformer:(Ljava/lang/instrument/ClassFileTransformer;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/instrument/InstrumentationImpl;
0 2 1 transformer Ljava/lang/instrument/ClassFileTransformer;
MethodParameters:
Name Flags
transformer
public synchronized void addTransformer(java.lang.instrument.ClassFileTransformer, boolean);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;Z)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "null passed as 'transformer' in addTransformer"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 2
ifeq 13
3: aload 0
invokevirtual sun.instrument.InstrumentationImpl.isRetransformClassesSupported:()Z
ifne 7
4: new java.lang.UnsupportedOperationException
dup
5: ldc "adding retransformable transformers is not supported in this environment"
6: invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
ifnonnull 9
8: aload 0
new sun.instrument.TransformerManager
dup
iconst_1
invokespecial sun.instrument.TransformerManager.<init>:(Z)V
putfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
aload 1
invokevirtual sun.instrument.TransformerManager.addTransformer:(Ljava/lang/instrument/ClassFileTransformer;)V
10: aload 0
getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
invokevirtual sun.instrument.TransformerManager.getTransformerCount:()I
iconst_1
if_icmpne 14
11: aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
iconst_1
invokevirtual sun.instrument.InstrumentationImpl.setHasRetransformableTransformers:(JZ)V
12: goto 14
13: StackMap locals:
StackMap stack:
aload 0
getfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
aload 1
invokevirtual sun.instrument.TransformerManager.addTransformer:(Ljava/lang/instrument/ClassFileTransformer;)V
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/instrument/InstrumentationImpl;
0 15 1 transformer Ljava/lang/instrument/ClassFileTransformer;
0 15 2 canRetransform Z
MethodParameters:
Name Flags
transformer
canRetransform
public synchronized boolean removeTransformer(java.lang.instrument.ClassFileTransformer);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;)Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "null passed as 'transformer' in removeTransformer"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.instrument.InstrumentationImpl.findTransformerManager:(Ljava/lang/instrument/ClassFileTransformer;)Lsun/instrument/TransformerManager;
astore 2
start local 2 3: aload 2
ifnull 8
4: aload 2
aload 1
invokevirtual sun.instrument.TransformerManager.removeTransformer:(Ljava/lang/instrument/ClassFileTransformer;)Z
pop
5: aload 2
invokevirtual sun.instrument.TransformerManager.isRetransformable:()Z
ifeq 7
aload 2
invokevirtual sun.instrument.TransformerManager.getTransformerCount:()I
ifne 7
6: aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
iconst_0
invokevirtual sun.instrument.InstrumentationImpl.setHasRetransformableTransformers:(JZ)V
7: StackMap locals: sun.instrument.TransformerManager
StackMap stack:
iconst_1
ireturn
8: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/instrument/InstrumentationImpl;
0 9 1 transformer Ljava/lang/instrument/ClassFileTransformer;
3 9 2 mgr Lsun/instrument/TransformerManager;
MethodParameters:
Name Flags
transformer
public boolean isModifiableClass(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 4
1: new java.lang.NullPointerException
dup
2: ldc "null passed as 'theClass' in isModifiableClass"
3: invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 1
invokevirtual sun.instrument.InstrumentationImpl.isModifiableClass0:(JLjava/lang/Class;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/instrument/InstrumentationImpl;
0 5 1 theClass Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
theClass
public boolean isRetransformClassesSupported();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClassesKnown:Z
ifne 3
1: aload 0
aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
invokevirtual sun.instrument.InstrumentationImpl.isRetransformClassesSupported0:(J)Z
putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClasses:Z
2: aload 0
iconst_1
putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClassesKnown:Z
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClasses:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/instrument/InstrumentationImpl;
public void retransformClasses(java.lang.Class<?>[]);
descriptor: ([Ljava/lang/Class;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.instrument.InstrumentationImpl.isRetransformClassesSupported:()Z
ifne 4
1: new java.lang.UnsupportedOperationException
dup
2: ldc "retransformClasses is not supported in this environment"
3: invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 1
invokevirtual sun.instrument.InstrumentationImpl.retransformClasses0:(J[Ljava/lang/Class;)V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/instrument/InstrumentationImpl;
0 6 1 classes [Ljava/lang/Class;
Signature: ([Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
classes
public boolean isRedefineClassesSupported();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRedefineClasses:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/instrument/InstrumentationImpl;
public void redefineClasses(java.lang.instrument.ClassDefinition[]);
descriptor: ([Ljava/lang/instrument/ClassDefinition;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.instrument.InstrumentationImpl.isRedefineClassesSupported:()Z
ifne 2
1: new java.lang.UnsupportedOperationException
dup
ldc "redefineClasses is not supported in this environment"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
ifnonnull 4
3: new java.lang.NullPointerException
dup
ldc "null passed as 'definitions' in redefineClasses"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 5: goto 9
6: StackMap locals: int
StackMap stack:
aload 1
iload 2
aaload
ifnonnull 8
7: new java.lang.NullPointerException
dup
ldc "element of 'definitions' is null in redefineClasses"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
aload 1
arraylength
if_icmplt 6
end local 2 10: aload 1
arraylength
ifne 12
11: return
12: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 1
invokevirtual sun.instrument.InstrumentationImpl.redefineClasses0:(J[Ljava/lang/instrument/ClassDefinition;)V
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/instrument/InstrumentationImpl;
0 14 1 definitions [Ljava/lang/instrument/ClassDefinition;
5 10 2 i I
Exceptions:
throws java.lang.ClassNotFoundException
MethodParameters:
Name Flags
definitions
public java.lang.Class[] getAllLoadedClasses();
descriptor: ()[Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
invokevirtual sun.instrument.InstrumentationImpl.getAllLoadedClasses0:(J)[Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/instrument/InstrumentationImpl;
public java.lang.Class[] getInitiatedClasses(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)[Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 1
invokevirtual sun.instrument.InstrumentationImpl.getInitiatedClasses0:(JLjava/lang/ClassLoader;)[Ljava/lang/Class;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/instrument/InstrumentationImpl;
0 1 1 loader Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
loader
public long getObjectSize(java.lang.Object);
descriptor: (Ljava/lang/Object;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "null passed as 'objectToSize' in getObjectSize"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 1
invokevirtual sun.instrument.InstrumentationImpl.getObjectSize0:(JLjava/lang/Object;)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/instrument/InstrumentationImpl;
0 3 1 objectToSize Ljava/lang/Object;
MethodParameters:
Name Flags
objectToSize
public void appendToBootstrapClassLoaderSearch(java.util.jar.JarFile);
descriptor: (Ljava/util/jar/JarFile;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 1
invokevirtual java.util.jar.JarFile.getName:()Ljava/lang/String;
iconst_1
invokevirtual sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0:(JLjava/lang/String;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/instrument/InstrumentationImpl;
0 2 1 jarfile Ljava/util/jar/JarFile;
MethodParameters:
Name Flags
jarfile
public void appendToSystemClassLoaderSearch(java.util.jar.JarFile);
descriptor: (Ljava/util/jar/JarFile;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 1
invokevirtual java.util.jar.JarFile.getName:()Ljava/lang/String;
iconst_0
invokevirtual sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0:(JLjava/lang/String;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/instrument/InstrumentationImpl;
0 2 1 jarfile Ljava/util/jar/JarFile;
MethodParameters:
Name Flags
jarfile
public boolean isNativeMethodPrefixSupported();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsNativeMethodPrefix:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/instrument/InstrumentationImpl;
public synchronized void setNativeMethodPrefix(java.lang.instrument.ClassFileTransformer, java.lang.String);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;Ljava/lang/String;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual sun.instrument.InstrumentationImpl.isNativeMethodPrefixSupported:()Z
ifne 4
1: new java.lang.UnsupportedOperationException
dup
2: ldc "setNativeMethodPrefix is not supported in this environment"
3: invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
ifnonnull 8
5: new java.lang.NullPointerException
dup
6: ldc "null passed as 'transformer' in setNativeMethodPrefix"
7: invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.instrument.InstrumentationImpl.findTransformerManager:(Ljava/lang/instrument/ClassFileTransformer;)Lsun/instrument/TransformerManager;
astore 3
start local 3 9: aload 3
ifnonnull 13
10: new java.lang.IllegalArgumentException
dup
11: ldc "transformer not registered in setNativeMethodPrefix"
12: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals: sun.instrument.TransformerManager
StackMap stack:
aload 3
aload 1
aload 2
invokevirtual sun.instrument.TransformerManager.setNativeMethodPrefix:(Ljava/lang/instrument/ClassFileTransformer;Ljava/lang/String;)Z
pop
14: aload 3
invokevirtual sun.instrument.TransformerManager.getNativeMethodPrefixes:()[Ljava/lang/String;
astore 4
start local 4 15: aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 4
aload 3
invokevirtual sun.instrument.TransformerManager.isRetransformable:()Z
invokevirtual sun.instrument.InstrumentationImpl.setNativeMethodPrefixes:(J[Ljava/lang/String;Z)V
16: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/instrument/InstrumentationImpl;
0 17 1 transformer Ljava/lang/instrument/ClassFileTransformer;
0 17 2 prefix Ljava/lang/String;
9 17 3 mgr Lsun/instrument/TransformerManager;
15 17 4 prefixes [Ljava/lang/String;
MethodParameters:
Name Flags
transformer
prefix
private sun.instrument.TransformerManager findTransformerManager(java.lang.instrument.ClassFileTransformer);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;)Lsun/instrument/TransformerManager;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
aload 1
invokevirtual sun.instrument.TransformerManager.includesTransformer:(Ljava/lang/instrument/ClassFileTransformer;)Z
ifeq 2
1: aload 0
getfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
ifnull 5
3: aload 0
getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
aload 1
invokevirtual sun.instrument.TransformerManager.includesTransformer:(Ljava/lang/instrument/ClassFileTransformer;)Z
ifeq 5
4: aload 0
getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
areturn
5: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/instrument/InstrumentationImpl;
0 6 1 transformer Ljava/lang/instrument/ClassFileTransformer;
MethodParameters:
Name Flags
transformer
private native boolean isModifiableClass0(long, java.lang.Class<?>);
descriptor: (JLjava/lang/Class;)Z
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Signature: (JLjava/lang/Class<*>;)Z
MethodParameters:
Name Flags
nativeAgent
theClass
private native boolean isRetransformClassesSupported0(long);
descriptor: (J)Z
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
nativeAgent
private native void setHasRetransformableTransformers(long, boolean);
descriptor: (JZ)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
nativeAgent
has
private native void retransformClasses0(long, java.lang.Class<?>[]);
descriptor: (J[Ljava/lang/Class;)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Signature: (J[Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
nativeAgent
classes
private native void redefineClasses0(long, java.lang.instrument.ClassDefinition[]);
descriptor: (J[Ljava/lang/instrument/ClassDefinition;)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Exceptions:
throws java.lang.ClassNotFoundException
MethodParameters:
Name Flags
nativeAgent
definitions
private native java.lang.Class[] getAllLoadedClasses0(long);
descriptor: (J)[Ljava/lang/Class;
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
nativeAgent
private native java.lang.Class[] getInitiatedClasses0(long, java.lang.ClassLoader);
descriptor: (JLjava/lang/ClassLoader;)[Ljava/lang/Class;
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
nativeAgent
loader
private native long getObjectSize0(long, java.lang.Object);
descriptor: (JLjava/lang/Object;)J
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
nativeAgent
objectToSize
private native void appendToClassLoaderSearch0(long, java.lang.String, boolean);
descriptor: (JLjava/lang/String;Z)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
nativeAgent
jarfile
bootLoader
private native void setNativeMethodPrefixes(long, java.lang.String[], boolean);
descriptor: (J[Ljava/lang/String;Z)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
nativeAgent
prefixes
isRetransformable
private static void setAccessible(java.lang.reflect.AccessibleObject, boolean);
descriptor: (Ljava/lang/reflect/AccessibleObject;Z)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new sun.instrument.InstrumentationImpl$1
dup
aload 0
iload 1
invokespecial sun.instrument.InstrumentationImpl$1.<init>:(Ljava/lang/reflect/AccessibleObject;Z)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 ao Ljava/lang/reflect/AccessibleObject;
0 2 1 accessible Z
MethodParameters:
Name Flags
ao final
accessible final
private void loadClassAndStartAgent(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
astore 4
start local 4 1: aload 4
aload 1
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 5
start local 5 2: aconst_null
astore 6
start local 6 3: aconst_null
astore 7
start local 7 4: iconst_0
istore 8
start local 8 5: aload 5
aload 2
6: iconst_2
anewarray java.lang.Class
dup
iconst_0
7: ldc Ljava/lang/String;
aastore
dup
iconst_1
8: ldc Ljava/lang/instrument/Instrumentation;
aastore
9: invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 6
10: iconst_1
istore 8
11: goto 14
StackMap locals: sun.instrument.InstrumentationImpl java.lang.String java.lang.String java.lang.String java.lang.ClassLoader java.lang.Class java.lang.reflect.Method java.lang.NoSuchMethodException int
StackMap stack: java.lang.NoSuchMethodException
12: astore 9
start local 9 13: aload 9
astore 7
end local 9 14: StackMap locals:
StackMap stack:
aload 6
ifnonnull 20
15: aload 5
aload 2
16: iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/String;
aastore
17: invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 6
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
19: pop
20: StackMap locals:
StackMap stack:
aload 6
ifnonnull 29
21: aload 5
aload 2
22: iconst_2
anewarray java.lang.Class
dup
iconst_0
23: ldc Ljava/lang/String;
aastore
dup
iconst_1
24: ldc Ljava/lang/instrument/Instrumentation;
aastore
25: invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 6
26: iconst_1
istore 8
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
28: pop
29: StackMap locals:
StackMap stack:
aload 6
ifnonnull 36
30: aload 5
aload 2
31: iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/String;
aastore
32: invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 6
33: goto 36
StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
34: pop
35: aload 7
athrow
36: StackMap locals:
StackMap stack:
aload 6
iconst_1
invokestatic sun.instrument.InstrumentationImpl.setAccessible:(Ljava/lang/reflect/AccessibleObject;Z)V
37: iload 8
ifeq 40
38: aload 6
aconst_null
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
dup
iconst_1
aload 0
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
39: goto 41
40: StackMap locals:
StackMap stack:
aload 6
aconst_null
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
41: StackMap locals:
StackMap stack:
aload 6
iconst_0
invokestatic sun.instrument.InstrumentationImpl.setAccessible:(Ljava/lang/reflect/AccessibleObject;Z)V
42: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lsun/instrument/InstrumentationImpl;
0 43 1 classname Ljava/lang/String;
0 43 2 methodname Ljava/lang/String;
0 43 3 optionsString Ljava/lang/String;
1 43 4 mainAppLoader Ljava/lang/ClassLoader;
2 43 5 javaAgentClass Ljava/lang/Class<*>;
3 43 6 m Ljava/lang/reflect/Method;
4 43 7 firstExc Ljava/lang/NoSuchMethodException;
5 43 8 twoArgAgent Z
13 14 9 x Ljava/lang/NoSuchMethodException;
Exception table:
from to target type
5 11 12 Class java.lang.NoSuchMethodException
15 18 19 Class java.lang.NoSuchMethodException
21 27 28 Class java.lang.NoSuchMethodException
30 33 34 Class java.lang.NoSuchMethodException
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
classname
methodname
optionsString
private void loadClassAndCallPremain(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
ldc "premain"
aload 2
invokevirtual sun.instrument.InstrumentationImpl.loadClassAndStartAgent:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/instrument/InstrumentationImpl;
0 2 1 classname Ljava/lang/String;
0 2 2 optionsString Ljava/lang/String;
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
classname
optionsString
private void loadClassAndCallAgentmain(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
ldc "agentmain"
aload 2
invokevirtual sun.instrument.InstrumentationImpl.loadClassAndStartAgent:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/instrument/InstrumentationImpl;
0 2 1 classname Ljava/lang/String;
0 2 2 optionsString Ljava/lang/String;
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
classname
optionsString
private byte[] transform(java.lang.ClassLoader, java.lang.String, java.lang.Class<?>, java.security.ProtectionDomain, byte[], );
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class;Ljava/security/ProtectionDomain;[BZ)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: iload 6
ifeq 2
1: aload 0
getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
goto 3
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
3: StackMap locals:
StackMap stack: sun.instrument.TransformerManager
astore 7
start local 7 4: aload 7
ifnonnull 6
5: aconst_null
areturn
6: StackMap locals: sun.instrument.TransformerManager
StackMap stack:
aload 7
aload 1
7: aload 2
8: aload 3
9: aload 4
10: aload 5
11: invokevirtual sun.instrument.TransformerManager.transform:(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class;Ljava/security/ProtectionDomain;[B)[B
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/instrument/InstrumentationImpl;
0 12 1 loader Ljava/lang/ClassLoader;
0 12 2 classname Ljava/lang/String;
0 12 3 classBeingRedefined Ljava/lang/Class<*>;
0 12 4 protectionDomain Ljava/security/ProtectionDomain;
0 12 5 classfileBuffer [B
0 12 6 isRetransformer Z
4 12 7 mgr Lsun/instrument/TransformerManager;
Signature: (Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class<*>;Ljava/security/ProtectionDomain;[BZ)[B
MethodParameters:
Name Flags
loader
classname
classBeingRedefined
protectionDomain
classfileBuffer
isRetransformer
}
SourceFile: "InstrumentationImpl.java"
NestMembers:
sun.instrument.InstrumentationImpl$1
InnerClasses:
sun.instrument.InstrumentationImpl$1