final class jdk.jfr.internal.tool.Disassemble extends jdk.jfr.internal.tool.Command
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.jfr.internal.tool.Disassemble
super_class: jdk.jfr.internal.tool.Command
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial jdk.jfr.internal.tool.Command.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/jfr/internal/tool/Disassemble;
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 "disassemble"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/jfr/internal/tool/Disassemble;
public java.util.List<java.lang.String> getOptionSyntax();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 1
ldc "[--output <directory>]"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: aload 1
ldc "[--max-chunks <chunks>]"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 1
ldc "[--max-size <size>]"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 1
ldc "<file>"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/jfr/internal/tool/Disassemble;
1 6 1 list Ljava/util/List<Ljava/lang/String;>;
Signature: ()Ljava/util/List<Ljava/lang/String;>;
public void displayOptionUsage(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc " --output <directory> The location to write the disassembled file,"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: aload 1
ldc " by default the current directory"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: aload 1
ldc ""
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: aload 1
ldc " --max-chunks <chunks> Maximum number of chunks per disassembled file,"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: aload 1
ldc " by default 5. The chunk size varies, but is "
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: aload 1
ldc " typically around 15 MB."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
6: aload 1
ldc ""
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: aload 1
ldc " --max-size <size> Maximum number of bytes per file."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
8: aload 1
ldc ""
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
9: aload 1
ldc " <file> Location of the recording file (.jfr)"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/jfr/internal/tool/Disassemble;
0 11 1 stream Ljava/io/PrintStream;
MethodParameters:
Name Flags
stream
public java.lang.String getDescription();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "Disassemble a recording file into smaller files/chunks"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/jfr/internal/tool/Disassemble;
public void execute(java.util.Deque<java.lang.String>);
descriptor: (Ljava/util/Deque;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Deque.isEmpty:()Z
ifeq 2
1: new jdk.jfr.internal.tool.UserSyntaxException
dup
ldc "missing file"
invokespecial jdk.jfr.internal.tool.UserSyntaxException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.jfr.internal.tool.Disassemble.getJFRInputFile:(Ljava/util/Deque;)Ljava/nio/file/Path;
astore 2
start local 2 3: ldc 2147483647
istore 3
start local 3 4: ldc 2147483647
istore 4
start local 4 5: ldc "user.dir"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 5
start local 5 6: aload 1
invokeinterface java.util.Deque.size:()I
istore 6
start local 6 7: goto 27
8: StackMap locals: jdk.jfr.internal.tool.Disassemble java.util.Deque java.nio.file.Path int int java.lang.String int
StackMap stack:
aload 0
aload 1
ldc "--output"
invokevirtual jdk.jfr.internal.tool.Disassemble.acceptOption:(Ljava/util/Deque;Ljava/lang/String;)Z
ifeq 10
9: aload 1
invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
10: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc "--max-size"
invokevirtual jdk.jfr.internal.tool.Disassemble.acceptOption:(Ljava/util/Deque;Ljava/lang/String;)Z
ifeq 17
11: aload 1
invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 12: aload 7
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 4
13: iload 4
iconst_1
if_icmpge 17
14: new jdk.jfr.internal.tool.UserDataException
dup
ldc "max size must be at least 1"
invokespecial jdk.jfr.internal.tool.UserDataException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals: jdk.jfr.internal.tool.Disassemble java.util.Deque java.nio.file.Path int int java.lang.String int java.lang.String
StackMap stack: java.lang.NumberFormatException
pop
16: new jdk.jfr.internal.tool.UserDataException
dup
ldc "not a valid value for --max-size."
invokespecial jdk.jfr.internal.tool.UserDataException.<init>:(Ljava/lang/String;)V
athrow
end local 7 17: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc "--max-chunks"
invokevirtual jdk.jfr.internal.tool.Disassemble.acceptOption:(Ljava/util/Deque;Ljava/lang/String;)Z
ifeq 24
18: aload 1
invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 19: aload 7
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 3
20: iload 3
iconst_1
if_icmpge 24
21: new jdk.jfr.internal.tool.UserDataException
dup
ldc "max chunks must be at least 1."
invokespecial jdk.jfr.internal.tool.UserDataException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals: jdk.jfr.internal.tool.Disassemble java.util.Deque java.nio.file.Path int int java.lang.String int java.lang.String
StackMap stack: java.lang.NumberFormatException
pop
23: new jdk.jfr.internal.tool.UserDataException
dup
ldc "not a valid value for --max-size."
invokespecial jdk.jfr.internal.tool.UserDataException.<init>:(Ljava/lang/String;)V
athrow
end local 7 24: StackMap locals:
StackMap stack:
iload 6
aload 1
invokeinterface java.util.Deque.size:()I
if_icmpne 26
25: new jdk.jfr.internal.tool.UserSyntaxException
dup
new java.lang.StringBuilder
dup
ldc "unknown option "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial jdk.jfr.internal.tool.UserSyntaxException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.Deque.size:()I
istore 6
27: StackMap locals:
StackMap stack:
iload 6
ifgt 8
28: aload 0
aload 5
invokevirtual jdk.jfr.internal.tool.Disassemble.getDirectory:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 7
start local 7 29: aload 0
invokevirtual jdk.jfr.internal.tool.Disassemble.println:()V
30: aload 0
new java.lang.StringBuilder
dup
ldc "Examining recording "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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;
invokevirtual jdk.jfr.internal.tool.Disassemble.println:(Ljava/lang/String;)V
31: iload 4
ldc 2147483647
if_icmpeq 39
iload 3
ldc 2147483647
if_icmpne 39
32: aload 2
invokestatic java.nio.file.Files.size:(Ljava/nio/file/Path;)J
lstore 9
start local 9 33: iload 4
i2l
lload 9
lcmp
iflt 39
34: aload 0
invokevirtual jdk.jfr.internal.tool.Disassemble.println:()V
35: aload 0
new java.lang.StringBuilder
dup
ldc "File size ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 9
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc ") does not exceed max size ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual jdk.jfr.internal.tool.Disassemble.println:(Ljava/lang/String;)V
36: return
end local 9 37: StackMap locals: jdk.jfr.internal.tool.Disassemble java.util.Deque java.nio.file.Path int int java.lang.String int java.nio.file.Path
StackMap stack: java.io.IOException
astore 9
start local 9 38: new jdk.jfr.internal.tool.UserDataException
dup
new java.lang.StringBuilder
dup
ldc "unexpected i/o error when determining file size"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial jdk.jfr.internal.tool.UserDataException.<init>:(Ljava/lang/String;)V
athrow
end local 9 39: StackMap locals:
StackMap stack:
iload 4
ldc 2147483647
if_icmpne 41
iload 3
ldc 2147483647
if_icmpne 41
40: iconst_5
istore 3
41: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual jdk.jfr.internal.tool.Disassemble.findChunkSizes:(Ljava/nio/file/Path;)Ljava/util/List;
astore 8
start local 8 42: goto 45
end local 8 StackMap locals:
StackMap stack: java.io.IOException
43: astore 9
start local 9 44: new jdk.jfr.internal.tool.UserDataException
dup
new java.lang.StringBuilder
dup
ldc "unexpected i/o error. "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial jdk.jfr.internal.tool.UserDataException.<init>:(Ljava/lang/String;)V
athrow
end local 9 start local 8 45: StackMap locals: java.util.List
StackMap stack:
iload 4
ldc 2147483647
if_icmpne 46
iconst_1
goto 47
StackMap locals:
StackMap stack:
46: iconst_0
StackMap locals:
StackMap stack: int
47: aload 8
invokeinterface java.util.List.size:()I
iload 3
if_icmpgt 48
iconst_1
goto 49
StackMap locals:
StackMap stack: int
48: iconst_0
StackMap locals: jdk.jfr.internal.tool.Disassemble java.util.Deque java.nio.file.Path int int java.lang.String int java.nio.file.Path java.util.List
StackMap stack: int int
49: if_icmpne 51
50: new jdk.jfr.internal.tool.UserDataException
dup
new java.lang.StringBuilder
dup
ldc "number of chunks in recording ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokeinterface java.util.List.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") doesn't exceed max chunks ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial jdk.jfr.internal.tool.UserDataException.<init>:(Ljava/lang/String;)V
athrow
51: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.jfr.internal.tool.Disassemble.println:()V
52: aload 8
invokeinterface java.util.List.size:()I
ifle 59
53: aload 0
aload 8
iload 3
iload 4
i2l
invokevirtual jdk.jfr.internal.tool.Disassemble.combineChunkSizes:(Ljava/util/List;IJ)Ljava/util/List;
astore 9
start local 9 54: aload 0
new java.lang.StringBuilder
dup
ldc "File consists of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokeinterface java.util.List.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " chunks. The recording will be split into "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual jdk.jfr.internal.tool.Disassemble.print:(Ljava/lang/String;)V
55: aload 0
new java.lang.StringBuilder
dup
aload 9
invokeinterface java.util.List.size:()I
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " files"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual jdk.jfr.internal.tool.Disassemble.println:(Ljava/lang/String;)V
56: aload 0
invokevirtual jdk.jfr.internal.tool.Disassemble.println:()V
57: aload 0
aload 7
aload 2
aload 9
invokevirtual jdk.jfr.internal.tool.Disassemble.splitFile:(Ljava/nio/file/Path;Ljava/nio/file/Path;Ljava/util/List;)V
end local 9 58: goto 60
59: StackMap locals:
StackMap stack:
new jdk.jfr.internal.tool.UserDataException
dup
ldc "no JFR chunks found in file."
invokespecial jdk.jfr.internal.tool.UserDataException.<init>:(Ljava/lang/String;)V
athrow
60: StackMap locals:
StackMap stack:
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 61 0 this Ljdk/jfr/internal/tool/Disassemble;
0 61 1 options Ljava/util/Deque<Ljava/lang/String;>;
3 61 2 file Ljava/nio/file/Path;
4 61 3 maxChunks I
5 61 4 maxsize I
6 61 5 output Ljava/lang/String;
7 61 6 optionCount I
12 17 7 value Ljava/lang/String;
19 24 7 value Ljava/lang/String;
29 61 7 outputPath Ljava/nio/file/Path;
42 43 8 sizes Ljava/util/List<Ljava/lang/Long;>;
45 61 8 sizes Ljava/util/List<Ljava/lang/Long;>;
33 37 9 fileSize J
38 39 9 e Ljava/io/IOException;
44 45 9 e Ljava/io/IOException;
54 58 9 combinedSizes Ljava/util/List<Ljava/lang/Long;>;
Exception table:
from to target type
12 15 15 Class java.lang.NumberFormatException
19 22 22 Class java.lang.NumberFormatException
32 36 37 Class java.io.IOException
41 42 43 Class java.io.IOException
Exceptions:
throws jdk.jfr.internal.tool.UserSyntaxException, jdk.jfr.internal.tool.UserDataException
Signature: (Ljava/util/Deque<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
options
private java.util.List<java.lang.Long> findChunkSizes(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: new jdk.jfr.internal.consumer.RecordingInput
dup
aload 1
invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
getstatic jdk.jfr.internal.consumer.FileAccess.UNPRIVILEGED:Ljdk/jfr/internal/consumer/FileAccess;
invokespecial jdk.jfr.internal.consumer.RecordingInput.<init>:(Ljava/io/File;Ljdk/jfr/internal/consumer/FileAccess;)V
astore 4
start local 4 2: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 3: new jdk.jfr.internal.consumer.ChunkHeader
dup
aload 4
invokespecial jdk.jfr.internal.consumer.ChunkHeader.<init>:(Ljdk/jfr/internal/consumer/RecordingInput;)V
astore 6
start local 6 4: aload 5
aload 6
invokevirtual jdk.jfr.internal.consumer.ChunkHeader.getSize:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: goto 8
6: StackMap locals: jdk.jfr.internal.tool.Disassemble java.nio.file.Path java.lang.Throwable java.lang.Throwable jdk.jfr.internal.consumer.RecordingInput java.util.List jdk.jfr.internal.consumer.ChunkHeader
StackMap stack:
aload 6
invokevirtual jdk.jfr.internal.consumer.ChunkHeader.nextHeader:()Ljdk/jfr/internal/consumer/ChunkHeader;
astore 6
7: aload 5
aload 6
invokevirtual jdk.jfr.internal.consumer.ChunkHeader.getSize:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: StackMap locals:
StackMap stack:
aload 6
invokevirtual jdk.jfr.internal.consumer.ChunkHeader.isLastChunk:()Z
ifeq 6
9: aload 5
10: aload 4
ifnull 11
aload 4
invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
11: StackMap locals:
StackMap stack: java.util.List
areturn
end local 6 end local 5 StackMap locals: jdk.jfr.internal.tool.Disassemble java.nio.file.Path java.lang.Throwable java.lang.Throwable jdk.jfr.internal.consumer.RecordingInput
StackMap stack: java.lang.Throwable
12: astore 2
13: aload 4
ifnull 14
aload 4
invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
end local 4 StackMap locals:
StackMap stack:
14: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 3
aload 2
ifnonnull 16
aload 3
astore 2
goto 17
StackMap locals:
StackMap stack:
16: aload 2
aload 3
if_acmpeq 17
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
17: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljdk/jfr/internal/tool/Disassemble;
0 18 1 p Ljava/nio/file/Path;
2 14 4 input Ljdk/jfr/internal/consumer/RecordingInput;
3 12 5 sizes Ljava/util/List<Ljava/lang/Long;>;
4 12 6 ch Ljdk/jfr/internal/consumer/ChunkHeader;
Exception table:
from to target type
2 10 12 any
1 11 15 any
12 15 15 any
Exceptions:
throws java.io.IOException
Signature: (Ljava/nio/file/Path;)Ljava/util/List<Ljava/lang/Long;>;
MethodParameters:
Name Flags
p
private java.util.List<java.lang.Long> combineChunkSizes(java.util.List<java.lang.Long>, int, long);
descriptor: (Ljava/util/List;IJ)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 1: iconst_1
istore 6
start local 6 2: aload 1
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lstore 7
start local 7 3: iconst_1
istore 9
start local 9 4: goto 14
5: StackMap locals: jdk.jfr.internal.tool.Disassemble java.util.List int long java.util.List int long int
StackMap stack:
aload 1
iload 9
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lstore 10
start local 10 6: lload 7
lload 10
ladd
lload 3
lcmp
ifgt 7
iload 6
iload 2
if_icmpne 11
7: StackMap locals: long
StackMap stack:
aload 5
lload 7
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: iconst_1
istore 6
9: lload 10
lstore 7
10: goto 13
11: StackMap locals:
StackMap stack:
lload 7
lload 10
ladd
lstore 7
12: iinc 6 1
end local 10 13: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
14: iload 9
aload 1
invokeinterface java.util.List.size:()I
if_icmplt 5
end local 9 15: lload 7
lconst_0
lcmp
ifeq 17
16: aload 5
lload 7
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
17: StackMap locals:
StackMap stack:
aload 5
areturn
end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljdk/jfr/internal/tool/Disassemble;
0 18 1 sizes Ljava/util/List<Ljava/lang/Long;>;
0 18 2 maxChunks I
0 18 3 maxSize J
1 18 5 reduced Ljava/util/List<Ljava/lang/Long;>;
2 18 6 chunks I
3 18 7 fileSize J
4 15 9 i I
6 13 10 size J
Signature: (Ljava/util/List<Ljava/lang/Long;>;IJ)Ljava/util/List<Ljava/lang/Long;>;
MethodParameters:
Name Flags
sizes
maxChunks
maxSize
private void splitFile(java.nio.file.Path, java.nio.file.Path, java.util.List<java.lang.Long>);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=17, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokeinterface java.util.List.size:()I
iconst_1
isub
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokevirtual java.lang.String.length:()I
istore 4
start local 4 1: aload 2
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
astore 5
start local 5 2: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 5
iconst_0
aload 5
invokevirtual java.lang.String.length:()I
iconst_4
isub
invokevirtual java.lang.String.subSequence:(II)Ljava/lang/CharSequence;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "_%0"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "d.jfr"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 6
start local 6 3: iconst_0
istore 7
start local 7 4: goto 12
5: StackMap locals: jdk.jfr.internal.tool.Disassemble java.nio.file.Path java.nio.file.Path java.util.List int java.lang.String java.lang.String int
StackMap stack:
aload 6
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 8
start local 8 6: aload 1
aload 8
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 9
start local 9 7: aload 9
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 11
8: new jdk.jfr.internal.tool.UserDataException
dup
new java.lang.StringBuilder
dup
ldc "can't create disassembled file "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ", a file with that name already exist"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial jdk.jfr.internal.tool.UserDataException.<init>:(Ljava/lang/String;)V
athrow
end local 9 9: StackMap locals: jdk.jfr.internal.tool.Disassemble java.nio.file.Path java.nio.file.Path java.util.List int java.lang.String java.lang.String int java.lang.String
StackMap stack: java.nio.file.InvalidPathException
pop
10: new jdk.jfr.internal.tool.UserDataException
dup
new java.lang.StringBuilder
dup
ldc "can't construct path with filename"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial jdk.jfr.internal.tool.UserDataException.<init>:(Ljava/lang/String;)V
athrow
end local 8 11: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
12: iload 7
aload 3
invokeinterface java.util.List.size:()I
if_icmplt 5
end local 7 13: aconst_null
astore 7
aconst_null
astore 8
14: new java.io.DataInputStream
dup
new java.io.BufferedInputStream
dup
new java.io.FileInputStream
dup
aload 2
invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
astore 9
start local 9 15: iconst_0
istore 10
start local 10 16: goto 27
17: StackMap locals: jdk.jfr.internal.tool.Disassemble java.nio.file.Path java.nio.file.Path java.util.List int java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.io.DataInputStream int
StackMap stack:
aload 3
iload 10
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Long
astore 11
start local 11 18: aload 0
aload 9
aload 11
invokevirtual java.lang.Long.intValue:()I
invokevirtual jdk.jfr.internal.tool.Disassemble.readBytes:(Ljava/io/InputStream;I)[B
astore 12
start local 12 19: aload 6
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 10
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 13
start local 13 20: aload 1
aload 13
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 14
start local 14 21: aload 14
invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
astore 15
start local 15 22: aload 0
new java.lang.StringBuilder
dup
ldc "Writing "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 15
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " ... "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 12
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual jdk.jfr.internal.tool.Disassemble.println:(Ljava/lang/String;)V
23: new java.io.FileOutputStream
dup
aload 15
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 16
start local 16 24: aload 16
aload 12
invokevirtual java.io.FileOutputStream.write:([B)V
25: aload 16
invokevirtual java.io.FileOutputStream.close:()V
end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 26: iinc 10 1
StackMap locals:
StackMap stack:
27: iload 10
aload 3
invokeinterface java.util.List.size:()I
if_icmplt 17
end local 10 28: aload 9
ifnull 36
aload 9
invokevirtual java.io.DataInputStream.close:()V
goto 36
StackMap locals: jdk.jfr.internal.tool.Disassemble java.nio.file.Path java.nio.file.Path java.util.List int java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.io.DataInputStream
StackMap stack: java.lang.Throwable
29: astore 7
aload 9
ifnull 30
aload 9
invokevirtual java.io.DataInputStream.close:()V
end local 9 StackMap locals:
StackMap stack:
30: aload 7
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
31: astore 8
aload 7
ifnonnull 32
aload 8
astore 7
goto 33
StackMap locals:
StackMap stack:
32: aload 7
aload 8
if_acmpeq 33
aload 7
aload 8
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
33: aload 7
athrow
StackMap locals: jdk.jfr.internal.tool.Disassemble java.nio.file.Path java.nio.file.Path java.util.List int java.lang.String java.lang.String
StackMap stack: java.io.IOException
34: pop
35: new jdk.jfr.internal.tool.UserDataException
dup
new java.lang.StringBuilder
dup
ldc "i/o error writing file "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial jdk.jfr.internal.tool.UserDataException.<init>:(Ljava/lang/String;)V
athrow
36: StackMap locals:
StackMap stack:
return
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 37 0 this Ljdk/jfr/internal/tool/Disassemble;
0 37 1 directory Ljava/nio/file/Path;
0 37 2 file Ljava/nio/file/Path;
0 37 3 splitPositions Ljava/util/List<Ljava/lang/Long;>;
1 37 4 padAmountZeros I
2 37 5 fileName Ljava/lang/String;
3 37 6 fileFormatter Ljava/lang/String;
4 13 7 i I
6 11 8 formattedFilename Ljava/lang/String;
7 9 9 p Ljava/nio/file/Path;
15 30 9 stream Ljava/io/DataInputStream;
16 28 10 i I
18 26 11 l Ljava/lang/Long;
19 26 12 bytes [B
20 26 13 formattedFilename Ljava/lang/String;
21 26 14 p Ljava/nio/file/Path;
22 26 15 splittedFile Ljava/io/File;
24 26 16 fos Ljava/io/FileOutputStream;
Exception table:
from to target type
6 9 9 Class java.nio.file.InvalidPathException
15 28 29 any
14 31 31 any
13 34 34 Class java.io.IOException
Exceptions:
throws jdk.jfr.internal.tool.UserDataException
Signature: (Ljava/nio/file/Path;Ljava/nio/file/Path;Ljava/util/List<Ljava/lang/Long;>;)V
MethodParameters:
Name Flags
directory
file
splitPositions
private byte[] readBytes(java.io.InputStream, int);
descriptor: (Ljava/io/InputStream;I)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iload 2
newarray 8
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 7
3: StackMap locals: byte[] int
StackMap stack:
aload 1
aload 3
iload 4
aload 3
arraylength
iload 4
isub
invokevirtual java.io.InputStream.read:([BII)I
istore 5
start local 5 4: iload 5
iconst_m1
if_icmpne 6
5: new jdk.jfr.internal.tool.UserDataException
dup
ldc "unexpected end of data"
invokespecial jdk.jfr.internal.tool.UserDataException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: int
StackMap stack:
iload 4
iload 5
iadd
istore 4
end local 5 7: StackMap locals:
StackMap stack:
iload 4
aload 3
arraylength
if_icmplt 3
8: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/jfr/internal/tool/Disassemble;
0 9 1 stream Ljava/io/InputStream;
0 9 2 count I
1 9 3 data [B
2 9 4 totalRead I
4 7 5 read I
Exceptions:
throws jdk.jfr.internal.tool.UserDataException, java.io.IOException
MethodParameters:
Name Flags
stream
count
}
SourceFile: "Disassemble.java"