public class com.oracle.svm.hosted.agent.NativeImageBytecodeInstrumentationAgent
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.hosted.agent.NativeImageBytecodeInstrumentationAgent
super_class: java.lang.Object
{
private static com.oracle.svm.hosted.agent.TracingAdvisor advisor;
descriptor: Lcom/oracle/svm/hosted/agent/TracingAdvisor;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/agent/NativeImageBytecodeInstrumentationAgent;
public static void premain(java.lang.String, java.lang.instrument.Instrumentation);
descriptor: (Ljava/lang/String;Ljava/lang/instrument/Instrumentation;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.svm.hosted.agent.NativeImageBytecodeInstrumentationAgent.getJavaVersion:()I
bipush 8
if_icmpne 2
1: aload 1
invokedynamic apply()Lcom/oracle/svm/util/TransformerInterface;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;[B)[B
com/oracle/svm/hosted/agent/NativeImageBytecodeInstrumentationAgent.applyRewriteLambdasTransformation(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;[B)[B (6)
(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;[B)[B
invokestatic com.oracle.svm.util.AgentSupport.createClassInstrumentationTransformer:(Lcom/oracle/svm/util/TransformerInterface;)Ljava/lang/instrument/ClassFileTransformer;
invokeinterface java.lang.instrument.Instrumentation.addTransformer:(Ljava/lang/instrument/ClassFileTransformer;)V
2: StackMap locals:
StackMap stack:
aload 0
ifnull 5
aload 0
invokevirtual java.lang.String.isEmpty:()Z
ifne 5
3: new com.oracle.svm.hosted.agent.TracingAdvisor
dup
aload 0
invokespecial com.oracle.svm.hosted.agent.TracingAdvisor.<init>:(Ljava/lang/String;)V
putstatic com.oracle.svm.hosted.agent.NativeImageBytecodeInstrumentationAgent.advisor:Lcom/oracle/svm/hosted/agent/TracingAdvisor;
4: aload 1
invokedynamic apply()Lcom/oracle/svm/util/TransformerInterface;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;[B)[B
com/oracle/svm/hosted/agent/NativeImageBytecodeInstrumentationAgent.applyInitializationTrackingTransformation(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;[B)[B (6)
(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;[B)[B
invokestatic com.oracle.svm.util.AgentSupport.createClassInstrumentationTransformer:(Lcom/oracle/svm/util/TransformerInterface;)Ljava/lang/instrument/ClassFileTransformer;
invokeinterface java.lang.instrument.Instrumentation.addTransformer:(Ljava/lang/instrument/ClassFileTransformer;)V
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 agentArgs Ljava/lang/String;
0 6 1 inst Ljava/lang/instrument/Instrumentation;
MethodParameters:
Name Flags
agentArgs
inst
private static byte[] applyInitializationTrackingTransformation(java.lang.String, java.lang.ClassLoader, java.lang.String, byte[]);
descriptor: (Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;[B)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.svm.hosted.agent.NativeImageBytecodeInstrumentationAgent.advisor:Lcom/oracle/svm/hosted/agent/TracingAdvisor;
aload 2
invokevirtual com.oracle.svm.hosted.agent.TracingAdvisor.shouldTraceClassInitialization:(Ljava/lang/String;)Z
ifeq 6
1: new jdk.internal.org.objectweb.asm.ClassReader
dup
aload 3
invokespecial jdk.internal.org.objectweb.asm.ClassReader.<init>:([B)V
astore 4
start local 4 2: new jdk.internal.org.objectweb.asm.ClassWriter
dup
aload 4
iconst_2
invokespecial jdk.internal.org.objectweb.asm.ClassWriter.<init>:(Ljdk/internal/org/objectweb/asm/ClassReader;I)V
astore 5
start local 5 3: new com.oracle.svm.hosted.agent.ClinitGenerationVisitor
dup
aload 5
invokespecial com.oracle.svm.hosted.agent.ClinitGenerationVisitor.<init>:(Ljdk/internal/org/objectweb/asm/ClassWriter;)V
astore 6
start local 6 4: aload 4
aload 6
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.ClassReader.accept:(Ljdk/internal/org/objectweb/asm/ClassVisitor;I)V
5: aload 5
invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.toByteArray:()[B
areturn
end local 6 end local 5 end local 4 6: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 moduleName Ljava/lang/String;
0 7 1 loader Ljava/lang/ClassLoader;
0 7 2 className Ljava/lang/String;
0 7 3 classfileBuffer [B
2 6 4 reader Ljdk/internal/org/objectweb/asm/ClassReader;
3 6 5 writer Ljdk/internal/org/objectweb/asm/ClassWriter;
4 6 6 visitor Lcom/oracle/svm/hosted/agent/ClinitGenerationVisitor;
MethodParameters:
Name Flags
moduleName
loader
className
classfileBuffer
private static byte[] applyRewriteLambdasTransformation(java.lang.String, java.lang.ClassLoader, java.lang.String, byte[]);
descriptor: (Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;[B)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new jdk.internal.org.objectweb.asm.ClassReader
dup
aload 3
invokespecial jdk.internal.org.objectweb.asm.ClassReader.<init>:([B)V
astore 4
start local 4 1: new jdk.internal.org.objectweb.asm.ClassWriter
dup
aload 4
iconst_1
invokespecial jdk.internal.org.objectweb.asm.ClassWriter.<init>:(Ljdk/internal/org/objectweb/asm/ClassReader;I)V
astore 5
start local 5 2: new com.oracle.svm.hosted.agent.jdk8.lambda.LambdaMetaFactoryRewriteVisitor
dup
aload 1
aload 2
aload 5
invokespecial com.oracle.svm.hosted.agent.jdk8.lambda.LambdaMetaFactoryRewriteVisitor.<init>:(Ljava/lang/ClassLoader;Ljava/lang/String;Ljdk/internal/org/objectweb/asm/ClassWriter;)V
astore 6
start local 6 3: aload 4
aload 6
bipush 8
invokevirtual jdk.internal.org.objectweb.asm.ClassReader.accept:(Ljdk/internal/org/objectweb/asm/ClassVisitor;I)V
4: aload 5
invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.toByteArray:()[B
areturn
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 5 0 moduleName Ljava/lang/String;
0 5 1 loader Ljava/lang/ClassLoader;
0 5 2 className Ljava/lang/String;
0 5 3 classfileBuffer [B
1 5 4 reader Ljdk/internal/org/objectweb/asm/ClassReader;
2 5 5 writer Ljdk/internal/org/objectweb/asm/ClassWriter;
3 5 6 visitor Lcom/oracle/svm/hosted/agent/jdk8/lambda/LambdaMetaFactoryRewriteVisitor;
MethodParameters:
Name Flags
moduleName
loader
className
classfileBuffer
public static int getJavaVersion();
descriptor: ()I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=0
0: ldc "java.version"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 0
start local 0 1: aload 0
ldc "1."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 4
2: aload 0
iconst_2
iconst_3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 0
3: goto 10
4: StackMap locals: java.lang.String
StackMap stack:
aload 0
ldc "."
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 1
start local 1 5: iload 1
iconst_m1
if_icmpeq 7
6: aload 0
iconst_0
iload 1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 0
7: StackMap locals: int
StackMap stack:
aload 0
ldc "-"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 2
start local 2 8: iload 2
iconst_m1
if_icmpeq 10
9: aload 0
iconst_0
iload 2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 0
end local 2 end local 1 10: StackMap locals:
StackMap stack:
aload 0
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 11 0 version Ljava/lang/String;
5 10 1 dot I
8 10 2 dash I
}
SourceFile: "NativeImageBytecodeInstrumentationAgent.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles