public final class jdk.jfr.internal.tool.Main
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: jdk.jfr.internal.tool.Main
super_class: java.lang.Object
{
private static final int EXIT_OK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int EXIT_FAILED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int EXIT_WRONG_ARGUMENTS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
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 Ljdk/jfr/internal/tool/Main;
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=4, locals=6, args_size=1
start local 0 0: new java.util.LinkedList
dup
aload 0
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.LinkedList.<init>:(Ljava/util/Collection;)V
astore 1
start local 1 1: aload 1
invokeinterface java.util.Deque.isEmpty:()Z
ifeq 36
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Tool for working with Flight Recorder files (.jfr)"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Before using this tool, you must have a recording file."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "A file can be created by starting a recording from command line:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
6: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
7: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " java -XX:StartFlightRecording:filename=recording.jfr,duration=30s ... "
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
8: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
9: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "A recording can also be started on already running Java Virtual Machine:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
10: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
11: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " jcmd (to list available pids)"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
12: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " jcmd <pid> JFR.start"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
13: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
14: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Recording data can be dumped to file using the JFR.dump command:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
15: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
16: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " jcmd <pid> JFR.dump filename=recording.jfr"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
17: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
18: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "The contents of the recording can then be printed, for example:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
19: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
20: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " jfr print recording.jfr"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
21: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
22: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " jfr print --events CPULoad,GarbageCollection recording.jfr"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
23: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
24: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " jfr print --json --events CPULoad recording.jfr"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
25: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
26: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " jfr print --categories \"GC,JVM,Java*\" recording.jfr"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
27: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
28: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " jfr print --events \"jdk.*\" --stack-depth 64 recording.jfr"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
29: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
30: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " jfr summary recording.jfr"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
31: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
32: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " jfr metadata recording.jfr"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
33: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
34: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "For more information about available commands, use 'jfr help'"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
35: iconst_0
invokestatic java.lang.System.exit:(I)V
36: StackMap locals: java.util.Deque
StackMap stack:
aload 1
invokeinterface java.util.Deque.remove:()Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 37: invokestatic jdk.jfr.internal.tool.Command.getCommands:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 59
StackMap locals: java.lang.String[] java.util.Deque java.lang.String top java.util.Iterator
StackMap stack:
38: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.jfr.internal.tool.Command
astore 3
start local 3 39: aload 3
aload 2
invokevirtual jdk.jfr.internal.tool.Command.matches:(Ljava/lang/String;)Z
ifeq 59
40: aload 3
aload 1
invokevirtual jdk.jfr.internal.tool.Command.execute:(Ljava/util/Deque;)V
41: iconst_0
invokestatic java.lang.System.exit:(I)V
42: goto 59
StackMap locals: java.lang.String[] java.util.Deque java.lang.String jdk.jfr.internal.tool.Command java.util.Iterator
StackMap stack: jdk.jfr.internal.tool.UserDataException
43: astore 5
start local 5 44: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "jfr "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual jdk.jfr.internal.tool.Command.getName:()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;
aload 5
invokevirtual jdk.jfr.internal.tool.UserDataException.getMessage:()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
45: iconst_1
invokestatic java.lang.System.exit:(I)V
end local 5 46: goto 59
47: StackMap locals:
StackMap stack: jdk.jfr.internal.tool.UserSyntaxException
astore 5
start local 5 48: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "jfr "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual jdk.jfr.internal.tool.Command.getName:()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;
aload 5
invokevirtual jdk.jfr.internal.tool.UserSyntaxException.getMessage:()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
49: getstatic java.lang.System.err:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
50: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Usage:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
51: getstatic java.lang.System.err:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
52: aload 3
getstatic java.lang.System.err:Ljava/io/PrintStream;
invokevirtual jdk.jfr.internal.tool.Command.displayUsage:(Ljava/io/PrintStream;)V
53: iconst_2
invokestatic java.lang.System.exit:(I)V
end local 5 54: goto 59
55: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
start local 5 56: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "jfr "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual jdk.jfr.internal.tool.Command.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ": unexpected internal error, "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.Throwable.getMessage:()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
57: aload 5
invokevirtual java.lang.Throwable.printStackTrace:()V
58: iconst_1
invokestatic java.lang.System.exit:(I)V
end local 5 end local 3 59: StackMap locals: java.lang.String[] java.util.Deque java.lang.String top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 38
60: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "jfr: unknown command '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
61: getstatic java.lang.System.err:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
62: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "List of available commands:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
63: getstatic java.lang.System.err:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
64: getstatic java.lang.System.err:Ljava/io/PrintStream;
invokestatic jdk.jfr.internal.tool.Command.displayAvailableCommands:(Ljava/io/PrintStream;)V
65: iconst_2
invokestatic java.lang.System.exit:(I)V
66: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 67 0 args [Ljava/lang/String;
1 67 1 argList Ljava/util/Deque<Ljava/lang/String;>;
37 67 2 command Ljava/lang/String;
39 59 3 c Ljdk/jfr/internal/tool/Command;
44 46 5 ude Ljdk/jfr/internal/tool/UserDataException;
48 54 5 use Ljdk/jfr/internal/tool/UserSyntaxException;
56 59 5 e Ljava/lang/Throwable;
Exception table:
from to target type
40 42 43 Class jdk.jfr.internal.tool.UserDataException
40 42 47 Class jdk.jfr.internal.tool.UserSyntaxException
40 42 55 Class java.lang.Throwable
MethodParameters:
Name Flags
args
}
SourceFile: "Main.java"