public class org.graalvm.compiler.code.ObjdumpDisassemblerProvider implements org.graalvm.compiler.code.DisassemblerProvider
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.code.ObjdumpDisassemblerProvider
super_class: java.lang.Object
{
private java.util.Map<java.lang.String, java.lang.Boolean> objdumpCache;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Boolean;>;
private static final java.util.regex.Pattern SAFE_SHELL_ARG;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "[A-Za-z0-9@%_\\-\\+=:,\\./]+"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.SAFE_SHELL_ARG:Ljava/util/regex/Pattern;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.graalvm.compiler.code.ObjdumpDisassemblerProvider.objdumpCache:Ljava/util/Map;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/code/ObjdumpDisassemblerProvider;
private static java.lang.Process createProcess(java.lang.String[]);
descriptor: ([Ljava/lang/String;)Ljava/lang/Process;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new java.lang.ProcessBuilder
dup
aload 0
invokespecial java.lang.ProcessBuilder.<init>:([Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
invokevirtual java.lang.ProcessBuilder.start:()Ljava/lang/Process;
2: areturn
3: StackMap locals: java.lang.String[] java.lang.ProcessBuilder
StackMap stack: java.io.IOException
pop
4: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 cmd [Ljava/lang/String;
1 5 1 pb Ljava/lang/ProcessBuilder;
Exception table:
from to target type
1 2 3 Class java.io.IOException
MethodParameters:
Name Flags
cmd
public boolean isAvailable(org.graalvm.compiler.options.OptionValues);
descriptor: (Lorg/graalvm/compiler/options/OptionValues;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.code.ObjdumpDisassemblerProvider.getObjdump:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/String;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/code/ObjdumpDisassemblerProvider;
0 2 1 options Lorg/graalvm/compiler/options/OptionValues;
MethodParameters:
Name Flags
options
public java.lang.String disassembleCompiledCode(org.graalvm.compiler.options.OptionValues, jdk.vm.ci.code.CodeCacheProvider, org.graalvm.compiler.code.CompilationResult);
descriptor: (Lorg/graalvm/compiler/options/OptionValues;Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/code/CompilationResult;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=27, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.code.ObjdumpDisassemblerProvider.getObjdump:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/String;
astore 4
start local 4 1: aload 4
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.lang.String
StackMap stack:
aconst_null
astore 5
start local 5 4: ldc "compiledBinary"
ldc ".bin"
invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
astore 5
5: aconst_null
astore 6
aconst_null
astore 7
6: new java.io.FileOutputStream
dup
aload 5
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 8
start local 8 7: aload 8
aload 3
invokevirtual org.graalvm.compiler.code.CompilationResult.getTargetCode:()[B
invokevirtual java.io.FileOutputStream.write:([B)V
8: aload 8
ifnull 14
aload 8
invokevirtual java.io.FileOutputStream.close:()V
goto 14
StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.Throwable java.lang.Throwable java.io.FileOutputStream
StackMap stack: java.lang.Throwable
9: astore 6
aload 8
ifnull 10
aload 8
invokevirtual java.io.FileOutputStream.close:()V
end local 8 StackMap locals:
StackMap stack:
10: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 7
aload 6
ifnonnull 12
aload 7
astore 6
goto 13
StackMap locals:
StackMap stack:
12: aload 6
aload 7
if_acmpeq 13
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
13: aload 6
athrow
14: StackMap locals:
StackMap stack:
invokestatic jdk.vm.ci.services.Services.getSavedProperties:()Ljava/util/Map;
ldc "os.arch"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 15: aload 7
ldc "amd64"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 16
aload 7
ldc "x86_64"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 18
16: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File top java.lang.String
StackMap stack:
bipush 9
anewarray java.lang.String
dup
iconst_0
aload 4
aastore
dup
iconst_1
ldc "-D"
aastore
dup
iconst_2
ldc "-b"
aastore
dup
iconst_3
ldc "binary"
aastore
dup
iconst_4
ldc "-M"
aastore
dup
iconst_5
ldc "x86-64"
aastore
dup
bipush 6
ldc "-m"
aastore
dup
bipush 7
ldc "i386"
aastore
dup
bipush 8
aload 5
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aastore
astore 6
start local 6 17: goto 24
end local 6 StackMap locals:
StackMap stack:
18: aload 7
ldc "aarch64"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 21
19: bipush 7
anewarray java.lang.String
dup
iconst_0
aload 4
aastore
dup
iconst_1
ldc "-D"
aastore
dup
iconst_2
ldc "-b"
aastore
dup
iconst_3
ldc "binary"
aastore
dup
iconst_4
ldc "-m"
aastore
dup
iconst_5
ldc "aarch64"
aastore
dup
bipush 6
aload 5
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aastore
astore 6
start local 6 20: goto 24
end local 6 21: StackMap locals:
StackMap stack:
aload 5
ifnull 23
22: aload 5
invokevirtual java.io.File.delete:()Z
pop
23: StackMap locals:
StackMap stack:
aconst_null
areturn
start local 6 24: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String
StackMap stack:
ldc " *(([0-9a-fA-F]+):\t.*)"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
astore 8
start local 8 25: aload 2
invokeinterface jdk.vm.ci.code.CodeCacheProvider.getTarget:()Ljdk/vm/ci/code/TargetDescription;
astore 9
start local 9 26: aload 2
invokeinterface jdk.vm.ci.code.CodeCacheProvider.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
astore 10
start local 10 27: aload 10
invokeinterface jdk.vm.ci.code.RegisterConfig.getFrameRegister:()Ljdk/vm/ci/code/Register;
astore 11
start local 11 28: new jdk.vm.ci.code.CodeUtil$DefaultRefMapFormatter
dup
aload 9
getfield jdk.vm.ci.code.TargetDescription.wordSize:I
aload 11
iconst_0
invokespecial jdk.vm.ci.code.CodeUtil$DefaultRefMapFormatter.<init>:(ILjdk/vm/ci/code/Register;I)V
astore 12
start local 12 29: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 13
start local 13 30: aload 3
invokevirtual org.graalvm.compiler.code.CompilationResult.getDataPatches:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 15
goto 33
StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String java.util.regex.Pattern jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterConfig jdk.vm.ci.code.Register jdk.vm.ci.code.CodeUtil$RefMapFormatter java.util.Map top java.util.Iterator
StackMap stack:
31: aload 15
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.vm.ci.code.site.DataPatch
astore 14
start local 14 32: aload 13
aload 14
getfield jdk.vm.ci.code.site.DataPatch.pcOffset:I
new java.lang.StringBuilder
dup
ldc "{"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 14
getfield jdk.vm.ci.code.site.DataPatch.reference:Ljdk/vm/ci/code/site/Reference;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.putAnnotation:(Ljava/util/Map;ILjava/lang/String;)V
end local 14 33: StackMap locals:
StackMap stack:
aload 15
invokeinterface java.util.Iterator.hasNext:()Z
ifne 31
34: aload 3
invokevirtual org.graalvm.compiler.code.CompilationResult.getMarks:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 15
goto 37
StackMap locals:
StackMap stack:
35: aload 15
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.code.CompilationResult$CodeMark
astore 14
start local 14 36: aload 13
aload 14
getfield org.graalvm.compiler.code.CompilationResult$CodeMark.pcOffset:I
aload 14
getfield org.graalvm.compiler.code.CompilationResult$CodeMark.id:Lorg/graalvm/compiler/code/CompilationResult$MarkId;
invokeinterface org.graalvm.compiler.code.CompilationResult$MarkId.getName:()Ljava/lang/String;
invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.putAnnotation:(Ljava/util/Map;ILjava/lang/String;)V
end local 14 37: StackMap locals:
StackMap stack:
aload 15
invokeinterface java.util.Iterator.hasNext:()Z
ifne 35
38: aload 3
invokevirtual org.graalvm.compiler.code.CompilationResult.getCodeAnnotations:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 15
goto 41
StackMap locals:
StackMap stack:
39: aload 15
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.code.CompilationResult$CodeAnnotation
astore 14
start local 14 40: aload 13
aload 14
invokevirtual org.graalvm.compiler.code.CompilationResult$CodeAnnotation.getPosition:()I
aload 14
invokevirtual org.graalvm.compiler.code.CompilationResult$CodeAnnotation.toString:()Ljava/lang/String;
invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.putAnnotation:(Ljava/util/Map;ILjava/lang/String;)V
end local 14 41: StackMap locals:
StackMap stack:
aload 15
invokeinterface java.util.Iterator.hasNext:()Z
ifne 39
42: aload 3
invokevirtual org.graalvm.compiler.code.CompilationResult.getInfopoints:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 15
goto 53
StackMap locals:
StackMap stack:
43: aload 15
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.vm.ci.code.site.Infopoint
astore 14
start local 14 44: aload 14
instanceof jdk.vm.ci.code.site.Call
ifeq 50
45: aload 14
checkcast jdk.vm.ci.code.site.Call
astore 16
start local 16 46: aload 16
getfield jdk.vm.ci.code.site.Call.debugInfo:Ljdk/vm/ci/code/DebugInfo;
ifnull 48
47: aload 13
aload 16
getfield jdk.vm.ci.code.site.Call.pcOffset:I
aload 16
getfield jdk.vm.ci.code.site.Call.size:I
iadd
new java.lang.StringBuilder
dup
bipush 100
invokespecial java.lang.StringBuilder.<init>:(I)V
aload 16
getfield jdk.vm.ci.code.site.Call.debugInfo:Ljdk/vm/ci/code/DebugInfo;
aload 12
invokestatic jdk.vm.ci.code.CodeUtil.append:(Ljava/lang/StringBuilder;Ljdk/vm/ci/code/DebugInfo;Ljdk/vm/ci/code/CodeUtil$RefMapFormatter;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.putAnnotation:(Ljava/util/Map;ILjava/lang/String;)V
48: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String java.util.regex.Pattern jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterConfig jdk.vm.ci.code.Register jdk.vm.ci.code.CodeUtil$RefMapFormatter java.util.Map jdk.vm.ci.code.site.Infopoint java.util.Iterator jdk.vm.ci.code.site.Call
StackMap stack:
aload 13
aload 16
getfield jdk.vm.ci.code.site.Call.pcOffset:I
new java.lang.StringBuilder
dup
ldc "{"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
aload 16
invokeinterface jdk.vm.ci.code.CodeCacheProvider.getTargetName:(Ljdk/vm/ci/code/site/Call;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.putAnnotation:(Ljava/util/Map;ILjava/lang/String;)V
end local 16 49: goto 53
50: StackMap locals:
StackMap stack:
aload 14
getfield jdk.vm.ci.code.site.Infopoint.debugInfo:Ljdk/vm/ci/code/DebugInfo;
ifnull 52
51: aload 13
aload 14
getfield jdk.vm.ci.code.site.Infopoint.pcOffset:I
new java.lang.StringBuilder
dup
bipush 100
invokespecial java.lang.StringBuilder.<init>:(I)V
aload 14
getfield jdk.vm.ci.code.site.Infopoint.debugInfo:Ljdk/vm/ci/code/DebugInfo;
aload 12
invokestatic jdk.vm.ci.code.CodeUtil.append:(Ljava/lang/StringBuilder;Ljdk/vm/ci/code/DebugInfo;Ljdk/vm/ci/code/CodeUtil$RefMapFormatter;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.putAnnotation:(Ljava/util/Map;ILjava/lang/String;)V
52: StackMap locals:
StackMap stack:
aload 13
aload 14
getfield jdk.vm.ci.code.site.Infopoint.pcOffset:I
new java.lang.StringBuilder
dup
ldc "{infopoint: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 14
getfield jdk.vm.ci.code.site.Infopoint.reason:Ljdk/vm/ci/code/site/InfopointReason;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.putAnnotation:(Ljava/util/Map;ILjava/lang/String;)V
end local 14 53: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String java.util.regex.Pattern jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterConfig jdk.vm.ci.code.Register jdk.vm.ci.code.CodeUtil$RefMapFormatter java.util.Map top java.util.Iterator
StackMap stack:
aload 15
invokeinterface java.util.Iterator.hasNext:()Z
ifne 43
54: aload 6
invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.createProcess:([Ljava/lang/String;)Ljava/lang/Process;
astore 14
start local 14 55: aload 14
ifnonnull 59
56: aload 5
ifnull 58
57: aload 5
invokevirtual java.io.File.delete:()Z
pop
58: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String java.util.regex.Pattern jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterConfig jdk.vm.ci.code.Register jdk.vm.ci.code.CodeUtil$RefMapFormatter java.util.Map java.lang.Process
StackMap stack:
aconst_null
areturn
59: StackMap locals:
StackMap stack:
aload 14
invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
astore 15
start local 15 60: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 16
start local 16 61: new java.io.InputStreamReader
dup
aload 15
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
astore 17
start local 17 62: aconst_null
astore 18
aconst_null
astore 19
63: new java.io.BufferedReader
dup
aload 17
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 20
start local 20 64: goto 74
start local 21 65: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String java.util.regex.Pattern jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterConfig jdk.vm.ci.code.Register jdk.vm.ci.code.CodeUtil$RefMapFormatter java.util.Map java.lang.Process java.io.InputStream java.lang.StringBuilder java.io.InputStreamReader java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String
StackMap stack:
aload 8
aload 21
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 22
start local 22 66: aload 22
invokevirtual java.util.regex.Matcher.find:()Z
ifeq 73
67: aload 22
iconst_2
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
bipush 16
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;I)I
istore 23
start local 23 68: aload 13
iload 23
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 24
start local 24 69: aload 24
ifnull 72
70: aload 24
ldc "\n"
ldc "\n; "
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
astore 24
71: aload 16
ldc "; "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 24
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
72: StackMap locals: java.util.regex.Matcher int java.lang.String
StackMap stack:
aload 22
ldc "0x$1"
invokevirtual java.util.regex.Matcher.replaceAll:(Ljava/lang/String;)Ljava/lang/String;
astore 21
end local 24 end local 23 73: StackMap locals:
StackMap stack:
aload 16
aload 21
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 22 end local 21 74: StackMap locals:
StackMap stack:
aload 20
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
dup
astore 21
start local 21 75: ifnonnull 65
end local 21 76: aload 20
ifnull 82
aload 20
invokevirtual java.io.BufferedReader.close:()V
goto 82
StackMap locals:
StackMap stack: java.lang.Throwable
77: astore 18
aload 20
ifnull 78
aload 20
invokevirtual java.io.BufferedReader.close:()V
end local 20 StackMap locals:
StackMap stack:
78: aload 18
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
79: astore 19
aload 18
ifnonnull 80
aload 19
astore 18
goto 81
StackMap locals:
StackMap stack:
80: aload 18
aload 19
if_acmpeq 81
aload 18
aload 19
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
81: aload 18
athrow
82: StackMap locals:
StackMap stack:
aconst_null
astore 18
aconst_null
astore 19
83: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
aload 14
invokevirtual java.lang.Process.getErrorStream:()Ljava/io/InputStream;
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 20
start local 20 84: aload 20
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
astore 21
start local 21 85: aload 21
ifnull 91
86: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Error output from executing: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokedynamic apply()Ljava/util/function/Function;
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/Object;)Ljava/lang/Object;
org/graalvm/compiler/code/ObjdumpDisassemblerProvider.lambda$0(Ljava/lang/String;)Ljava/lang/String; (6)
(Ljava/lang/String;)Ljava/lang/String;
ldc " "
invokestatic org.graalvm.util.CollectionsUtil.mapAndJoin:([Ljava/lang/Object;Ljava/util/function/Function;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
87: getstatic java.lang.System.err:Ljava/io/PrintStream;
aload 21
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
88: goto 90
89: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String java.util.regex.Pattern jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterConfig jdk.vm.ci.code.Register jdk.vm.ci.code.CodeUtil$RefMapFormatter java.util.Map java.lang.Process java.io.InputStream java.lang.StringBuilder java.io.InputStreamReader java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String
StackMap stack:
getstatic java.lang.System.err:Ljava/io/PrintStream;
aload 21
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
90: StackMap locals:
StackMap stack:
aload 20
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
dup
astore 21
ifnonnull 89
end local 21 91: StackMap locals:
StackMap stack:
aload 20
ifnull 97
aload 20
invokevirtual java.io.BufferedReader.close:()V
goto 97
StackMap locals:
StackMap stack: java.lang.Throwable
92: astore 18
aload 20
ifnull 93
aload 20
invokevirtual java.io.BufferedReader.close:()V
end local 20 StackMap locals:
StackMap stack:
93: aload 18
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
94: astore 19
aload 18
ifnonnull 95
aload 19
astore 18
goto 96
StackMap locals:
StackMap stack:
95: aload 18
aload 19
if_acmpeq 96
aload 18
aload 19
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
96: aload 18
athrow
97: StackMap locals:
StackMap stack:
aload 16
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 26
98: aload 5
ifnull 100
99: aload 5
invokevirtual java.io.File.delete:()Z
pop
100: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File java.lang.String[] java.lang.String java.util.regex.Pattern jdk.vm.ci.code.TargetDescription jdk.vm.ci.code.RegisterConfig jdk.vm.ci.code.Register jdk.vm.ci.code.CodeUtil$RefMapFormatter java.util.Map java.lang.Process java.io.InputStream java.lang.StringBuilder java.io.InputStreamReader top top top top top top top top java.lang.String
StackMap stack:
aload 26
areturn
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 101: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File
StackMap stack: java.io.IOException
astore 6
start local 6 102: aload 6
invokevirtual java.io.IOException.printStackTrace:()V
103: aload 5
ifnull 105
104: aload 5
invokevirtual java.io.File.delete:()Z
pop
105: StackMap locals: java.io.IOException
StackMap stack:
aconst_null
areturn
end local 6 106: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File
StackMap stack: java.lang.Throwable
astore 25
107: aload 5
ifnull 109
108: aload 5
invokevirtual java.io.File.delete:()Z
pop
109: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues jdk.vm.ci.code.CodeCacheProvider org.graalvm.compiler.code.CompilationResult java.lang.String java.io.File top top top top top top top top top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 25
athrow
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 110 0 this Lorg/graalvm/compiler/code/ObjdumpDisassemblerProvider;
0 110 1 options Lorg/graalvm/compiler/options/OptionValues;
0 110 2 codeCache Ljdk/vm/ci/code/CodeCacheProvider;
0 110 3 compResult Lorg/graalvm/compiler/code/CompilationResult;
1 110 4 objdump Ljava/lang/String;
4 110 5 tmp Ljava/io/File;
7 10 8 fos Ljava/io/FileOutputStream;
17 18 6 cmdline [Ljava/lang/String;
20 21 6 cmdline [Ljava/lang/String;
24 101 6 cmdline [Ljava/lang/String;
15 101 7 arch Ljava/lang/String;
25 101 8 p Ljava/util/regex/Pattern;
26 101 9 target Ljdk/vm/ci/code/TargetDescription;
27 101 10 regConfig Ljdk/vm/ci/code/RegisterConfig;
28 101 11 fp Ljdk/vm/ci/code/Register;
29 101 12 slotFormatter Ljdk/vm/ci/code/CodeUtil$RefMapFormatter;
30 101 13 annotations Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/String;>;
32 33 14 site Ljdk/vm/ci/code/site/DataPatch;
36 37 14 mark Lorg/graalvm/compiler/code/CompilationResult$CodeMark;
40 41 14 a Lorg/graalvm/compiler/code/CompilationResult$CodeAnnotation;
44 53 14 infopoint Ljdk/vm/ci/code/site/Infopoint;
46 49 16 call Ljdk/vm/ci/code/site/Call;
55 101 14 proc Ljava/lang/Process;
60 101 15 is Ljava/io/InputStream;
61 101 16 sb Ljava/lang/StringBuilder;
62 101 17 isr Ljava/io/InputStreamReader;
64 78 20 br Ljava/io/BufferedReader;
65 74 21 line Ljava/lang/String;
75 76 21 line Ljava/lang/String;
66 74 22 m Ljava/util/regex/Matcher;
68 73 23 address I
69 73 24 annotation Ljava/lang/String;
84 93 20 ebr Ljava/io/BufferedReader;
85 91 21 errLine Ljava/lang/String;
102 106 6 e Ljava/io/IOException;
Exception table:
from to target type
7 8 9 any
6 11 11 any
64 76 77 any
63 79 79 any
84 91 92 any
83 94 94 any
4 21 101 Class java.io.IOException
24 56 101 Class java.io.IOException
59 98 101 Class java.io.IOException
4 21 106 any
24 56 106 any
59 98 106 any
101 103 106 any
MethodParameters:
Name Flags
options
codeCache
compResult
public static java.lang.String quoteShellArg(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.String.isEmpty:()Z
ifeq 2
1: ldc "\"\""
areturn
2: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.SAFE_SHELL_ARG:Ljava/util/regex/Pattern;
aload 0
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 1
start local 1 3: aload 1
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 5
4: aload 0
areturn
5: StackMap locals: java.util.regex.Matcher
StackMap stack:
new java.lang.StringBuilder
dup
ldc "'"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
ldc "'"
ldc "'\"'\"'"
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 arg Ljava/lang/String;
3 6 1 m Ljava/util/regex/Matcher;
MethodParameters:
Name Flags
arg
private java.lang.String getObjdump(org.graalvm.compiler.options.OptionValues);
descriptor: (Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=15, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider$Options.ObjdumpExecutables:Lorg/graalvm/compiler/options/OptionKey;
aload 1
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 1: aload 2
ifnull 31
aload 2
invokevirtual java.lang.String.isEmpty:()Z
ifne 31
2: aload 2
ldc ","
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 30
StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues java.lang.String top int int java.lang.String[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: aload 0
getfield org.graalvm.compiler.code.ObjdumpDisassemblerProvider.objdumpCache:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Boolean
astore 7
start local 7 5: aload 7
ifnull 8
6: aload 7
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 29
7: aload 3
areturn
8: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues java.lang.String java.lang.String int int java.lang.String[] java.lang.Boolean
StackMap stack:
iconst_2
anewarray java.lang.String
dup
iconst_0
aload 3
aastore
dup
iconst_1
ldc "--version"
aastore
astore 8
start local 8 9: aload 8
invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.createProcess:([Ljava/lang/String;)Ljava/lang/Process;
astore 9
start local 9 10: aload 9
ifnonnull 13
11: aload 0
getfield org.graalvm.compiler.code.ObjdumpDisassemblerProvider.objdumpCache:Ljava/util/Map;
aload 3
getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: aconst_null
areturn
13: StackMap locals: java.lang.String[] java.lang.Process
StackMap stack:
aload 9
invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
astore 10
start local 10 14: aload 9
invokevirtual java.lang.Process.waitFor:()I
istore 11
start local 11 15: iload 11
ifne 28
16: aload 10
invokevirtual java.io.InputStream.available:()I
newarray 8
astore 12
start local 12 17: iconst_0
istore 13
start local 13 18: goto 21
19: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues java.lang.String java.lang.String int int java.lang.String[] java.lang.Boolean java.lang.String[] java.lang.Process java.io.InputStream int byte[] int
StackMap stack:
aload 10
aload 12
iload 13
aload 12
arraylength
iload 13
isub
invokevirtual java.io.InputStream.read:([BII)I
istore 14
start local 14 20: iload 13
iload 14
iadd
istore 13
end local 14 21: StackMap locals:
StackMap stack:
iload 13
aload 12
arraylength
if_icmplt 19
22: new java.lang.String
dup
aload 12
invokespecial java.lang.String.<init>:([B)V
astore 14
start local 14 23: aload 14
ldc "GNU objdump"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 28
24: aload 0
getfield org.graalvm.compiler.code.ObjdumpDisassemblerProvider.objdumpCache:Ljava/util/Map;
aload 3
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
25: aload 3
26: areturn
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 27: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues java.lang.String java.lang.String int int java.lang.String[] java.lang.Boolean
StackMap stack: java.lang.Exception
pop
28: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.code.ObjdumpDisassemblerProvider.objdumpCache:Ljava/util/Map;
aload 3
getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 3 29: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues java.lang.String top int int java.lang.String[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
30: iload 4
iload 5
if_icmplt 3
31: StackMap locals: org.graalvm.compiler.code.ObjdumpDisassemblerProvider org.graalvm.compiler.options.OptionValues java.lang.String
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lorg/graalvm/compiler/code/ObjdumpDisassemblerProvider;
0 32 1 options Lorg/graalvm/compiler/options/OptionValues;
1 32 2 candidates Ljava/lang/String;
4 29 3 candidate Ljava/lang/String;
5 29 7 cachedQuery Ljava/lang/Boolean;
9 27 8 cmd [Ljava/lang/String;
10 27 9 proc Ljava/lang/Process;
14 27 10 is Ljava/io/InputStream;
15 27 11 exitValue I
17 27 12 buf [B
18 27 13 pos I
20 21 14 read I
23 27 14 output Ljava/lang/String;
Exception table:
from to target type
8 12 27 Class java.io.IOException
13 26 27 Class java.io.IOException
8 12 27 Class java.lang.InterruptedException
13 26 27 Class java.lang.InterruptedException
MethodParameters:
Name Flags
options
private static void putAnnotation(java.util.Map<java.lang.Integer, java.lang.String>, int, java.lang.String);
descriptor: (Ljava/util/Map;ILjava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.StringBuilder
dup
aload 0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc ""
invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 3
start local 3 1: aload 0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 annotations Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/String;>;
0 3 1 idx I
0 3 2 txt Ljava/lang/String;
1 3 3 newAnnotation Ljava/lang/String;
Signature: (Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/String;>;ILjava/lang/String;)V
MethodParameters:
Name Flags
annotations
idx
txt
public java.lang.String disassembleInstalledCode(jdk.vm.ci.code.CodeCacheProvider, org.graalvm.compiler.code.CompilationResult, jdk.vm.ci.code.InstalledCode);
descriptor: (Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/code/CompilationResult;Ljdk/vm/ci/code/InstalledCode;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: ldc "<unavailable>"
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/code/ObjdumpDisassemblerProvider;
0 1 1 codeCache Ljdk/vm/ci/code/CodeCacheProvider;
0 1 2 compResult Lorg/graalvm/compiler/code/CompilationResult;
0 1 3 code Ljdk/vm/ci/code/InstalledCode;
MethodParameters:
Name Flags
codeCache
compResult
code
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "objdump"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/code/ObjdumpDisassemblerProvider;
private static java.lang.String lambda$0(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokestatic org.graalvm.compiler.code.ObjdumpDisassemblerProvider.quoteShellArg:(Ljava/lang/String;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 e Ljava/lang/String;
}
SourceFile: "ObjdumpDisassemblerProvider.java"
NestMembers:
org.graalvm.compiler.code.ObjdumpDisassemblerProvider$Options
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public DefaultRefMapFormatter = jdk.vm.ci.code.CodeUtil$DefaultRefMapFormatter of jdk.vm.ci.code.CodeUtil
public abstract RefMapFormatter = jdk.vm.ci.code.CodeUtil$RefMapFormatter of jdk.vm.ci.code.CodeUtil
public abstract CodeAnnotation = org.graalvm.compiler.code.CompilationResult$CodeAnnotation of org.graalvm.compiler.code.CompilationResult
public CodeMark = org.graalvm.compiler.code.CompilationResult$CodeMark of org.graalvm.compiler.code.CompilationResult
public abstract MarkId = org.graalvm.compiler.code.CompilationResult$MarkId of org.graalvm.compiler.code.CompilationResult
Options = org.graalvm.compiler.code.ObjdumpDisassemblerProvider$Options of org.graalvm.compiler.code.ObjdumpDisassemblerProvider
RuntimeInvisibleAnnotations:
org.graalvm.compiler.serviceprovider.ServiceProvider(value = Lorg/graalvm/compiler/code/DisassemblerProvider;)