final class jdk.jfr.internal.dcmd.DCmdStart extends jdk.jfr.internal.dcmd.AbstractDCmd
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.jfr.internal.dcmd.DCmdStart
  super_class: jdk.jfr.internal.dcmd.AbstractDCmd
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.dcmd.DCmdStart this
         0: .line 56
            aload 0 /* this */
            invokespecial jdk.jfr.internal.dcmd.AbstractDCmd.<init>:()V
            return
        end local 0 // jdk.jfr.internal.dcmd.DCmdStart this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/dcmd/DCmdStart;

  public java.lang.String execute(java.lang.String, java.lang.String[], java.lang.Long, java.lang.Long, java.lang.Boolean, java.lang.String, java.lang.Long, java.lang.Long, java.lang.Boolean, java.lang.Boolean);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=17, args_size=11
        start local 0 // jdk.jfr.internal.dcmd.DCmdStart this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String[] settings
        start local 3 // java.lang.Long delay
        start local 4 // java.lang.Long duration
        start local 5 // java.lang.Boolean disk
        start local 6 // java.lang.String path
        start local 7 // java.lang.Long maxAge
        start local 8 // java.lang.Long maxSize
        start local 9 // java.lang.Boolean dumpOnExit
        start local 10 // java.lang.Boolean pathToGcRoots
         0: .line 85
            getstatic jdk.jfr.internal.LogTag.JFR_DCMD:Ljdk/jfr/internal/LogTag;
            getstatic jdk.jfr.internal.LogLevel.DEBUG:Ljdk/jfr/internal/LogLevel;
            invokestatic jdk.jfr.internal.Logger.shouldLog:(Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;)Z
            ifeq 14
         1: .line 86
            getstatic jdk.jfr.internal.LogTag.JFR_DCMD:Ljdk/jfr/internal/LogTag;
            getstatic jdk.jfr.internal.LogLevel.DEBUG:Ljdk/jfr/internal/LogLevel;
            new java.lang.StringBuilder
            dup
            ldc "Executing DCmdStart: name="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 87
            ldc ", settings="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* settings */
            ifnull 3
            aload 2 /* settings */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            goto 4
      StackMap locals: jdk.jfr.internal.dcmd.DCmdStart java.lang.String java.lang.String[] java.lang.Long java.lang.Long java.lang.Boolean java.lang.String java.lang.Long java.lang.Long java.lang.Boolean java.lang.Boolean
      StackMap stack: jdk.jfr.internal.LogTag jdk.jfr.internal.LogLevel java.lang.StringBuilder
         3: ldc "(none)"
      StackMap locals: jdk.jfr.internal.dcmd.DCmdStart java.lang.String java.lang.String[] java.lang.Long java.lang.Long java.lang.Boolean java.lang.String java.lang.Long java.lang.Long java.lang.Boolean java.lang.Boolean
      StackMap stack: jdk.jfr.internal.LogTag jdk.jfr.internal.LogLevel java.lang.StringBuilder java.lang.Object
         4: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         5: .line 88
            ldc ", delay="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* delay */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         6: .line 89
            ldc ", duration="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* duration */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         7: .line 90
            ldc ", disk="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* disk */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         8: .line 91
            ldc ", filename="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 92
            ldc ", maxage="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* maxAge */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        10: .line 93
            ldc ", maxsize="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* maxSize */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        11: .line 94
            ldc ", dumponexit ="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* dumpOnExit */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        12: .line 95
            ldc ", path-to-gc-roots="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* pathToGcRoots */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 86
            invokestatic jdk.jfr.internal.Logger.log:(Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;Ljava/lang/String;)V
        14: .line 97
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ifnull 18
        15: .line 99
            aload 1 /* name */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            pop
        16: .line 100
            new jdk.jfr.internal.dcmd.DCmdException
            dup
            ldc "Name of recording can't be numeric"
            iconst_0
            anewarray java.lang.Object
            invokespecial jdk.jfr.internal.dcmd.DCmdException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        17: .line 101
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
            pop
        18: .line 106
      StackMap locals:
      StackMap stack:
            aload 4 /* duration */
            ifnonnull 20
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            aload 9 /* dumpOnExit */
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ifeq 20
            aload 6 /* path */
            ifnull 20
        19: .line 107
            new jdk.jfr.internal.dcmd.DCmdException
            dup
            ldc "Filename can only be set for a time bound recording or if dumponexit=true. Set duration/dumponexit or omit filename."
            iconst_0
            anewarray java.lang.Object
            invokespecial jdk.jfr.internal.dcmd.DCmdException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        20: .line 109
      StackMap locals:
      StackMap stack:
            aload 2 /* settings */
            arraylength
            iconst_1
            if_icmpne 22
            aload 2 /* settings */
            iconst_0
            aaload
            invokevirtual java.lang.String.length:()I
            ifne 22
        21: .line 110
            new jdk.jfr.internal.dcmd.DCmdException
            dup
            ldc "No settings specified. Use settings=none to start without any settings"
            iconst_0
            anewarray java.lang.Object
            invokespecial jdk.jfr.internal.dcmd.DCmdException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        22: .line 112
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 11 /* s */
        start local 11 // java.util.Map s
        23: .line 113
            aload 2 /* settings */
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 32
      StackMap locals: jdk.jfr.internal.dcmd.DCmdStart java.lang.String java.lang.String[] java.lang.Long java.lang.Long java.lang.Boolean java.lang.String java.lang.Long java.lang.Long java.lang.Boolean java.lang.Boolean java.util.Map top int int java.lang.String[]
      StackMap stack:
        24: aload 15
            iload 13
            aaload
            astore 12 /* configName */
        start local 12 // java.lang.String configName
        25: .line 115
            aload 11 /* s */
            aload 12 /* configName */
            invokestatic jdk.jfr.internal.jfc.JFC.createKnown:(Ljava/lang/String;)Ljdk/jfr/Configuration;
            invokevirtual jdk.jfr.Configuration.getSettings:()Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
        26: .line 116
            goto 31
      StackMap locals: jdk.jfr.internal.dcmd.DCmdStart java.lang.String java.lang.String[] java.lang.Long java.lang.Long java.lang.Boolean java.lang.String java.lang.Long java.lang.Long java.lang.Boolean java.lang.Boolean java.util.Map java.lang.String int int java.lang.String[]
      StackMap stack: java.io.FileNotFoundException
        27: astore 16 /* e */
        start local 16 // java.io.FileNotFoundException e
        28: .line 117
            new jdk.jfr.internal.dcmd.DCmdException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not find settings file'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 12 /* configName */
            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;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 16 /* e */
            aastore
            invokespecial jdk.jfr.internal.dcmd.DCmdException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 16 // java.io.FileNotFoundException e
        29: .line 118
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 16 /* e */
        start local 16 // java.lang.Exception e
        30: .line 119
            new jdk.jfr.internal.dcmd.DCmdException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not parse settings file '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* settings */
            iconst_0
            aaload
            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;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 16 /* e */
            aastore
            invokespecial jdk.jfr.internal.dcmd.DCmdException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 16 // java.lang.Exception e
        end local 12 // java.lang.String configName
        31: .line 113
      StackMap locals: jdk.jfr.internal.dcmd.DCmdStart java.lang.String java.lang.String[] java.lang.Long java.lang.Long java.lang.Boolean java.lang.String java.lang.Long java.lang.Long java.lang.Boolean java.lang.Boolean java.util.Map top int int java.lang.String[]
      StackMap stack:
            iinc 13 1
      StackMap locals:
      StackMap stack:
        32: iload 13
            iload 14
            if_icmplt 24
        33: .line 123
            aload 11 /* s */
            aload 10 /* pathToGcRoots */
            invokestatic jdk.jfr.internal.OldObjectSample.updateSettingPathToGcRoots:(Ljava/util/Map;Ljava/lang/Boolean;)V
        34: .line 125
            aload 4 /* duration */
            ifnull 37
        35: .line 126
            aload 4 /* duration */
            invokevirtual java.lang.Long.longValue:()J
            ldc 1000000000
            lcmp
            ifge 37
        36: .line 128
            new jdk.jfr.internal.dcmd.DCmdException
            dup
            ldc "Could not start recording, duration must be at least 1 second."
            iconst_0
            anewarray java.lang.Object
            invokespecial jdk.jfr.internal.dcmd.DCmdException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        37: .line 132
      StackMap locals: jdk.jfr.internal.dcmd.DCmdStart java.lang.String java.lang.String[] java.lang.Long java.lang.Long java.lang.Boolean java.lang.String java.lang.Long java.lang.Long java.lang.Boolean java.lang.Boolean java.util.Map
      StackMap stack:
            aload 3 /* delay */
            ifnull 40
        38: .line 133
            aload 3 /* delay */
            invokevirtual java.lang.Long.longValue:()J
            ldc 1000000000
            lcmp
            ifge 40
        39: .line 135
            new jdk.jfr.internal.dcmd.DCmdException
            dup
            ldc "Could not start recording, delay must be at least 1 second."
            iconst_0
            anewarray java.lang.Object
            invokespecial jdk.jfr.internal.dcmd.DCmdException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        40: .line 139
      StackMap locals:
      StackMap stack:
            invokestatic jdk.jfr.FlightRecorder.isInitialized:()Z
            ifne 42
            aload 3 /* delay */
            ifnonnull 42
        41: .line 140
            aload 0 /* this */
            aload 11 /* s */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.initializeWithForcedInstrumentation:(Ljava/util/Map;)V
        42: .line 143
      StackMap locals:
      StackMap stack:
            new jdk.jfr.Recording
            dup
            invokespecial jdk.jfr.Recording.<init>:()V
            astore 12 /* recording */
        start local 12 // jdk.jfr.Recording recording
        43: .line 144
            aload 1 /* name */
            ifnull 45
        44: .line 145
            aload 12 /* recording */
            aload 1 /* name */
            invokevirtual jdk.jfr.Recording.setName:(Ljava/lang/String;)V
        45: .line 148
      StackMap locals: jdk.jfr.Recording
      StackMap stack:
            aload 5 /* disk */
            ifnull 47
        46: .line 149
            aload 12 /* recording */
            aload 5 /* disk */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual jdk.jfr.Recording.setToDisk:(Z)V
        47: .line 151
      StackMap locals:
      StackMap stack:
            aload 12 /* recording */
            aload 11 /* s */
            invokevirtual jdk.jfr.Recording.setSettings:(Ljava/util/Map;)V
        48: .line 152
            aconst_null
            astore 13 /* safePath */
        start local 13 // jdk.jfr.internal.SecuritySupport$SafePath safePath
        49: .line 154
            aload 6 /* path */
            ifnull 62
        50: .line 156
            aload 9 /* dumpOnExit */
            ifnonnull 52
        51: .line 158
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            astore 9 /* dumpOnExit */
        52: .line 160
      StackMap locals: jdk.jfr.internal.SecuritySupport$SafePath
      StackMap stack:
            aload 6 /* path */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 14 /* p */
        start local 14 // java.nio.file.Path p
        53: .line 161
            aload 14 /* p */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 56
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            aload 9 /* dumpOnExit */
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ifeq 56
        54: .line 165
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 12 /* recording */
            invokevirtual jdk.jfr.internal.PrivateAccess.getPlatformRecording:(Ljdk/jfr/Recording;)Ljdk/jfr/internal/PlatformRecording;
            new jdk.jfr.internal.SecuritySupport$SafePath
            dup
            aload 14 /* p */
            invokespecial jdk.jfr.internal.SecuritySupport$SafePath.<init>:(Ljava/nio/file/Path;)V
            invokevirtual jdk.jfr.internal.PlatformRecording.setDumpOnExitDirectory:(Ljdk/jfr/internal/SecuritySupport$SafePath;)V
        55: .line 166
            goto 62
        56: .line 167
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 0 /* this */
            aload 12 /* recording */
            aload 6 /* path */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.resolvePath:(Ljdk/jfr/Recording;Ljava/lang/String;)Ljdk/jfr/internal/SecuritySupport$SafePath;
            astore 13 /* safePath */
        57: .line 168
            aload 12 /* recording */
            aload 13 /* safePath */
            invokevirtual jdk.jfr.internal.SecuritySupport$SafePath.toPath:()Ljava/nio/file/Path;
            invokevirtual jdk.jfr.Recording.setDestination:(Ljava/nio/file/Path;)V
        end local 14 // java.nio.file.Path p
        58: .line 170
            goto 62
      StackMap locals: jdk.jfr.internal.dcmd.DCmdStart java.lang.String java.lang.String[] java.lang.Long java.lang.Long java.lang.Boolean java.lang.String java.lang.Long java.lang.Long java.lang.Boolean java.lang.Boolean java.util.Map jdk.jfr.Recording jdk.jfr.internal.SecuritySupport$SafePath
      StackMap stack: java.lang.Exception
        59: astore 14 /* e */
        start local 14 // java.lang.Exception e
        60: .line 171
            aload 12 /* recording */
            invokevirtual jdk.jfr.Recording.close:()V
        61: .line 172
            new jdk.jfr.internal.dcmd.DCmdException
            dup
            ldc "Could not start recording, not able to write to file %s. %s "
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* path */
            aastore
            dup
            iconst_1
            aload 14 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            aastore
            invokespecial jdk.jfr.internal.dcmd.DCmdException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 14 // java.lang.Exception e
        62: .line 176
      StackMap locals:
      StackMap stack:
            aload 7 /* maxAge */
            ifnull 64
        63: .line 177
            aload 12 /* recording */
            aload 7 /* maxAge */
            invokevirtual java.lang.Long.longValue:()J
            invokestatic java.time.Duration.ofNanos:(J)Ljava/time/Duration;
            invokevirtual jdk.jfr.Recording.setMaxAge:(Ljava/time/Duration;)V
        64: .line 180
      StackMap locals:
      StackMap stack:
            aload 8 /* maxSize */
            ifnull 66
        65: .line 181
            aload 12 /* recording */
            aload 8 /* maxSize */
            invokevirtual java.lang.Long.longValue:()J
            invokevirtual jdk.jfr.Recording.setMaxSize:(J)V
        66: .line 184
      StackMap locals:
      StackMap stack:
            aload 4 /* duration */
            ifnull 68
        67: .line 185
            aload 12 /* recording */
            aload 4 /* duration */
            invokevirtual java.lang.Long.longValue:()J
            invokestatic java.time.Duration.ofNanos:(J)Ljava/time/Duration;
            invokevirtual jdk.jfr.Recording.setDuration:(Ljava/time/Duration;)V
        68: .line 188
      StackMap locals:
      StackMap stack:
            aload 9 /* dumpOnExit */
            ifnull 70
        69: .line 189
            aload 12 /* recording */
            aload 9 /* dumpOnExit */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual jdk.jfr.Recording.setDumpOnExit:(Z)V
        70: .line 192
      StackMap locals:
      StackMap stack:
            aload 3 /* delay */
            ifnull 77
        71: .line 193
            aload 3 /* delay */
            invokevirtual java.lang.Long.longValue:()J
            invokestatic java.time.Duration.ofNanos:(J)Ljava/time/Duration;
            astore 14 /* dDelay */
        start local 14 // java.time.Duration dDelay
        72: .line 194
            aload 12 /* recording */
            aload 14 /* dDelay */
            invokevirtual jdk.jfr.Recording.scheduleStart:(Ljava/time/Duration;)V
        73: .line 195
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Recording "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 12 /* recording */
            invokevirtual jdk.jfr.Recording.getId:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " scheduled to start in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.print:(Ljava/lang/String;)V
        74: .line 196
            aload 0 /* this */
            aload 14 /* dDelay */
            ldc " "
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.printTimespan:(Ljava/time/Duration;Ljava/lang/String;)V
        75: .line 197
            aload 0 /* this */
            ldc "."
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.print:(Ljava/lang/String;)V
        end local 14 // java.time.Duration dDelay
        76: .line 198
            goto 79
        77: .line 199
      StackMap locals:
      StackMap stack:
            aload 12 /* recording */
            invokevirtual jdk.jfr.Recording.start:()V
        78: .line 200
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Started recording "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 12 /* recording */
            invokevirtual jdk.jfr.Recording.getId:()J
            invokevirtual java.lang.StringBuilder.append:(J)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.dcmd.DCmdStart.print:(Ljava/lang/String;)V
        79: .line 203
      StackMap locals:
      StackMap stack:
            aload 12 /* recording */
            invokevirtual jdk.jfr.Recording.isToDisk:()Z
            ifeq 82
            aload 4 /* duration */
            ifnonnull 82
            aload 7 /* maxAge */
            ifnonnull 82
            aload 8 /* maxSize */
            ifnonnull 82
        80: .line 204
            aload 0 /* this */
            ldc " No limit specified, using maxsize=250MB as default."
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.print:(Ljava/lang/String;)V
        81: .line 205
            aload 12 /* recording */
            ldc 262144000
            invokevirtual jdk.jfr.Recording.setMaxSize:(J)V
        82: .line 208
      StackMap locals:
      StackMap stack:
            aload 13 /* safePath */
            ifnull 87
            aload 4 /* duration */
            ifnull 87
        83: .line 209
            aload 0 /* this */
            ldc " The result will be written to:"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.println:(Ljava/lang/String;[Ljava/lang/Object;)V
        84: .line 210
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.println:()V
        85: .line 211
            aload 0 /* this */
            aload 13 /* safePath */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.printPath:(Ljdk/jfr/internal/SecuritySupport$SafePath;)V
        86: .line 212
            goto 100
        87: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.println:()V
        88: .line 214
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.println:()V
        89: .line 215
            aload 4 /* duration */
            ifnonnull 90
            ldc "dump"
            goto 91
      StackMap locals:
      StackMap stack:
        90: ldc "stop"
      StackMap locals:
      StackMap stack: java.lang.String
        91: astore 14 /* cmd */
        start local 14 // java.lang.String cmd
        92: .line 216
            aload 6 /* path */
            ifnonnull 93
            ldc "filename=FILEPATH "
            goto 94
      StackMap locals: java.lang.String
      StackMap stack:
        93: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
        94: astore 15 /* fileOption */
        start local 15 // java.lang.String fileOption
        95: .line 217
            new java.lang.StringBuilder
            dup
            ldc "name="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 12 /* recording */
            invokevirtual jdk.jfr.Recording.getId:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 16 /* recordingspecifier */
        start local 16 // java.lang.String recordingspecifier
        96: .line 219
            aload 1 /* name */
            ifnull 98
        97: .line 220
            new java.lang.StringBuilder
            dup
            ldc "name="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokestatic jdk.jfr.internal.dcmd.DCmdStart.quoteIfNeeded:(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;
            astore 16 /* recordingspecifier */
        98: .line 222
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Use jcmd "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.getPid:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " JFR."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 14 /* cmd */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 16 /* recordingspecifier */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 15 /* fileOption */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "to copy recording data to file."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.print:(Ljava/lang/String;)V
        99: .line 223
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.println:()V
        end local 16 // java.lang.String recordingspecifier
        end local 15 // java.lang.String fileOption
        end local 14 // java.lang.String cmd
       100: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.getResult:()Ljava/lang/String;
            areturn
        end local 13 // jdk.jfr.internal.SecuritySupport$SafePath safePath
        end local 12 // jdk.jfr.Recording recording
        end local 11 // java.util.Map s
        end local 10 // java.lang.Boolean pathToGcRoots
        end local 9 // java.lang.Boolean dumpOnExit
        end local 8 // java.lang.Long maxSize
        end local 7 // java.lang.Long maxAge
        end local 6 // java.lang.String path
        end local 5 // java.lang.Boolean disk
        end local 4 // java.lang.Long duration
        end local 3 // java.lang.Long delay
        end local 2 // java.lang.String[] settings
        end local 1 // java.lang.String name
        end local 0 // jdk.jfr.internal.dcmd.DCmdStart this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0  101     0                this  Ljdk/jfr/internal/dcmd/DCmdStart;
            0  101     1                name  Ljava/lang/String;
            0  101     2            settings  [Ljava/lang/String;
            0  101     3               delay  Ljava/lang/Long;
            0  101     4            duration  Ljava/lang/Long;
            0  101     5                disk  Ljava/lang/Boolean;
            0  101     6                path  Ljava/lang/String;
            0  101     7              maxAge  Ljava/lang/Long;
            0  101     8             maxSize  Ljava/lang/Long;
            0  101     9          dumpOnExit  Ljava/lang/Boolean;
            0  101    10       pathToGcRoots  Ljava/lang/Boolean;
           23  101    11                   s  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           25   31    12          configName  Ljava/lang/String;
           28   29    16                   e  Ljava/io/FileNotFoundException;
           30   31    16                   e  Ljava/lang/Exception;
           43  101    12           recording  Ljdk/jfr/Recording;
           49  101    13            safePath  Ljdk/jfr/internal/SecuritySupport$SafePath;
           53   58    14                   p  Ljava/nio/file/Path;
           60   62    14                   e  Ljava/lang/Exception;
           72   76    14              dDelay  Ljava/time/Duration;
           92  100    14                 cmd  Ljava/lang/String;
           95  100    15          fileOption  Ljava/lang/String;
           96  100    16  recordingspecifier  Ljava/lang/String;
      Exception table:
        from    to  target  type
          15    17      17  Class java.lang.NumberFormatException
          25    26      27  Class java.io.FileNotFoundException
          25    26      29  Class java.io.IOException
          25    26      29  Class java.text.ParseException
          50    58      59  Class java.io.IOException
          50    58      59  Class java.nio.file.InvalidPathException
    Exceptions:
      throws jdk.jfr.internal.dcmd.DCmdException
    MethodParameters:
               Name  Flags
      name           
      settings       
      delay          
      duration       
      disk           
      path           
      maxAge         
      maxSize        
      dumpOnExit     
      pathToGcRoots  

  private void initializeWithForcedInstrumentation(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // jdk.jfr.internal.dcmd.DCmdStart this
        start local 1 // java.util.Map settings
         0: .line 231
            aload 0 /* this */
            aload 1 /* settings */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.hasJDKEvents:(Ljava/util/Map;)Z
            ifne 2
         1: .line 232
            return
         2: .line 234
      StackMap locals:
      StackMap stack:
            invokestatic jdk.jfr.internal.JVM.getJVM:()Ljdk/jfr/internal/JVM;
            astore 2 /* jvm */
        start local 2 // jdk.jfr.internal.JVM jvm
         3: .line 236
            aload 2 /* jvm */
            iconst_1
            invokevirtual jdk.jfr.internal.JVM.setForceInstrumentation:(Z)V
         4: .line 237
            invokestatic jdk.jfr.FlightRecorder.getFlightRecorder:()Ljdk/jfr/FlightRecorder;
            pop
         5: .line 238
            goto 9
      StackMap locals: jdk.jfr.internal.dcmd.DCmdStart java.util.Map jdk.jfr.internal.JVM
      StackMap stack: java.lang.Throwable
         6: astore 3
         7: .line 239
            aload 2 /* jvm */
            iconst_0
            invokevirtual jdk.jfr.internal.JVM.setForceInstrumentation:(Z)V
         8: .line 240
            aload 3
            athrow
         9: .line 239
      StackMap locals:
      StackMap stack:
            aload 2 /* jvm */
            iconst_0
            invokevirtual jdk.jfr.internal.JVM.setForceInstrumentation:(Z)V
        10: .line 241
            return
        end local 2 // jdk.jfr.internal.JVM jvm
        end local 1 // java.util.Map settings
        end local 0 // jdk.jfr.internal.dcmd.DCmdStart this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Ljdk/jfr/internal/dcmd/DCmdStart;
            0   11     1  settings  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            3   11     2       jvm  Ljdk/jfr/internal/JVM;
      Exception table:
        from    to  target  type
           3     6       6  any
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
          Name  Flags
      settings  

  private boolean hasJDKEvents(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // jdk.jfr.internal.dcmd.DCmdStart this
        start local 1 // java.util.Map settings
         0: .line 244
            bipush 7
            anewarray java.lang.String
            astore 2 /* eventNames */
        start local 2 // java.lang.String[] eventNames
         1: .line 245
            aload 2 /* eventNames */
            iconst_0
            ldc "FileRead"
            aastore
         2: .line 246
            aload 2 /* eventNames */
            iconst_1
            ldc "FileWrite"
            aastore
         3: .line 247
            aload 2 /* eventNames */
            iconst_2
            ldc "SocketRead"
            aastore
         4: .line 248
            aload 2 /* eventNames */
            iconst_3
            ldc "SocketWrite"
            aastore
         5: .line 249
            aload 2 /* eventNames */
            iconst_4
            ldc "JavaErrorThrow"
            aastore
         6: .line 250
            aload 2 /* eventNames */
            iconst_5
            ldc "JavaExceptionThrow"
            aastore
         7: .line 251
            aload 2 /* eventNames */
            bipush 6
            ldc "FileForce"
            aastore
         8: .line 252
            aload 2 /* eventNames */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 13
      StackMap locals: jdk.jfr.internal.dcmd.DCmdStart java.util.Map java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         9: aload 6
            iload 4
            aaload
            astore 3 /* eventName */
        start local 3 // java.lang.String eventName
        10: .line 253
            ldc "true"
            aload 1 /* settings */
            new java.lang.StringBuilder
            dup
            ldc "jdk."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* eventName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "#enabled"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 254
            iconst_1
            ireturn
        end local 3 // java.lang.String eventName
        12: .line 252
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        13: iload 4
            iload 5
            if_icmplt 9
        14: .line 257
            iconst_0
            ireturn
        end local 2 // java.lang.String[] eventNames
        end local 1 // java.util.Map settings
        end local 0 // jdk.jfr.internal.dcmd.DCmdStart this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Ljdk/jfr/internal/dcmd/DCmdStart;
            0   15     1    settings  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            1   15     2  eventNames  [Ljava/lang/String;
           10   12     3   eventName  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Z
    MethodParameters:
          Name  Flags
      settings  
}
SourceFile: "DCmdStart.java"
InnerClasses:
  public final SafePath = jdk.jfr.internal.SecuritySupport$SafePath of jdk.jfr.internal.SecuritySupport