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 57
            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.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/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=18, args_size=12
        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.Long flush
        start local 10 // java.lang.Boolean dumpOnExit
        start local 11 // java.lang.Boolean pathToGcRoots
         0: .line 86
            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 13
         1: .line 87
            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 88
            ldc ", settings="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* settings */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         3: .line 89
            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;
         4: .line 90
            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;
         5: .line 91
            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;
         6: .line 92
            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;
         7: .line 93
            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;
         8: .line 94
            ldc ", flush-interval="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* flush */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         9: .line 95
            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;
        10: .line 96
            ldc ", dumponexit="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* dumpOnExit */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        11: .line 97
            ldc ", path-to-gc-roots="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 11 /* pathToGcRoots */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 87
            invokestatic jdk.jfr.internal.Logger.log:(Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;Ljava/lang/String;)V
        13: .line 99
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ifnull 17
        14: .line 101
            aload 1 /* name */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            pop
        15: .line 102
            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
        16: .line 103
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
            pop
        17: .line 108
      StackMap locals:
      StackMap stack:
            aload 4 /* duration */
            ifnonnull 19
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            aload 10 /* dumpOnExit */
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ifeq 19
            aload 6 /* path */
            ifnull 19
        18: .line 109
            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
        19: .line 111
      StackMap locals:
      StackMap stack:
            aload 2 /* settings */
            arraylength
            iconst_1
            if_icmpne 21
            aload 2 /* settings */
            iconst_0
            aaload
            invokevirtual java.lang.String.length:()I
            ifne 21
        20: .line 112
            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
        21: .line 114
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 12 /* s */
        start local 12 // java.util.Map s
        22: .line 115
            aload 2 /* settings */
            dup
            astore 16
            arraylength
            istore 15
            iconst_0
            istore 14
            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.Long java.lang.Boolean java.lang.Boolean java.util.Map top int int java.lang.String[]
      StackMap stack:
        23: aload 16
            iload 14
            aaload
            astore 13 /* configName */
        start local 13 // java.lang.String configName
        24: .line 117
            aload 12 /* s */
            aload 13 /* 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
        25: .line 118
            goto 30
      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.Long java.lang.Boolean java.lang.Boolean java.util.Map java.lang.String int int java.lang.String[]
      StackMap stack: java.io.FileNotFoundException
        26: astore 17 /* e */
        start local 17 // java.io.FileNotFoundException e
        27: .line 119
            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 13 /* 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 17 /* e */
            aastore
            invokespecial jdk.jfr.internal.dcmd.DCmdException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 17 // java.io.FileNotFoundException e
        28: .line 120
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 17 /* e */
        start local 17 // java.lang.Exception e
        29: .line 121
            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 17 /* e */
            aastore
            invokespecial jdk.jfr.internal.dcmd.DCmdException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 17 // java.lang.Exception e
        end local 13 // java.lang.String configName
        30: .line 115
      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.Long java.lang.Boolean java.lang.Boolean java.util.Map top int int java.lang.String[]
      StackMap stack:
            iinc 14 1
      StackMap locals:
      StackMap stack:
        31: iload 14
            iload 15
            if_icmplt 23
        32: .line 125
            aload 12 /* s */
            aload 11 /* pathToGcRoots */
            invokestatic jdk.jfr.internal.OldObjectSample.updateSettingPathToGcRoots:(Ljava/util/Map;Ljava/lang/Boolean;)V
        33: .line 127
            aload 4 /* duration */
            ifnull 36
        34: .line 128
            aload 4 /* duration */
            invokevirtual java.lang.Long.longValue:()J
            ldc 1000000000
            lcmp
            ifge 36
        35: .line 130
            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
        36: .line 134
      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.Long java.lang.Boolean java.lang.Boolean java.util.Map
      StackMap stack:
            aload 3 /* delay */
            ifnull 39
        37: .line 135
            aload 3 /* delay */
            invokevirtual java.lang.Long.longValue:()J
            ldc 1000000000
            lcmp
            ifge 39
        38: .line 137
            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
        39: .line 141
      StackMap locals:
      StackMap stack:
            aload 9 /* flush */
            ifnull 42
        40: .line 142
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            aload 5 /* disk */
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ifeq 42
        41: .line 143
            new jdk.jfr.internal.dcmd.DCmdException
            dup
            ldc "Flush can only be set for recordings that are to disk."
            iconst_0
            anewarray java.lang.Object
            invokespecial jdk.jfr.internal.dcmd.DCmdException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        42: .line 147
      StackMap locals:
      StackMap stack:
            invokestatic jdk.jfr.FlightRecorder.isInitialized:()Z
            ifne 44
            aload 3 /* delay */
            ifnonnull 44
        43: .line 148
            aload 0 /* this */
            aload 12 /* s */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.initializeWithForcedInstrumentation:(Ljava/util/Map;)V
        44: .line 151
      StackMap locals:
      StackMap stack:
            new jdk.jfr.Recording
            dup
            invokespecial jdk.jfr.Recording.<init>:()V
            astore 13 /* recording */
        start local 13 // jdk.jfr.Recording recording
        45: .line 152
            aload 1 /* name */
            ifnull 47
        46: .line 153
            aload 13 /* recording */
            aload 1 /* name */
            invokevirtual jdk.jfr.Recording.setName:(Ljava/lang/String;)V
        47: .line 156
      StackMap locals: jdk.jfr.Recording
      StackMap stack:
            aload 5 /* disk */
            ifnull 49
        48: .line 157
            aload 13 /* recording */
            aload 5 /* disk */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual jdk.jfr.Recording.setToDisk:(Z)V
        49: .line 160
      StackMap locals:
      StackMap stack:
            aload 13 /* recording */
            aload 12 /* s */
            invokevirtual jdk.jfr.Recording.setSettings:(Ljava/util/Map;)V
        50: .line 161
            aconst_null
            astore 14 /* safePath */
        start local 14 // jdk.jfr.internal.SecuritySupport$SafePath safePath
        51: .line 163
            aload 6 /* path */
            ifnull 64
        52: .line 165
            aload 10 /* dumpOnExit */
            ifnonnull 54
        53: .line 167
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            astore 10 /* dumpOnExit */
        54: .line 169
      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 15 /* p */
        start local 15 // java.nio.file.Path p
        55: .line 170
            aload 15 /* p */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 58
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            aload 10 /* dumpOnExit */
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ifeq 58
        56: .line 174
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 13 /* recording */
            invokevirtual jdk.jfr.internal.PrivateAccess.getPlatformRecording:(Ljdk/jfr/Recording;)Ljdk/jfr/internal/PlatformRecording;
            new jdk.jfr.internal.SecuritySupport$SafePath
            dup
            aload 15 /* 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
        57: .line 175
            goto 64
        58: .line 176
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 0 /* this */
            aload 13 /* recording */
            aload 6 /* path */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.resolvePath:(Ljdk/jfr/Recording;Ljava/lang/String;)Ljdk/jfr/internal/SecuritySupport$SafePath;
            astore 14 /* safePath */
        59: .line 177
            aload 13 /* recording */
            aload 14 /* safePath */
            invokevirtual jdk.jfr.internal.SecuritySupport$SafePath.toPath:()Ljava/nio/file/Path;
            invokevirtual jdk.jfr.Recording.setDestination:(Ljava/nio/file/Path;)V
        end local 15 // java.nio.file.Path p
        60: .line 179
            goto 64
      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.Long java.lang.Boolean java.lang.Boolean java.util.Map jdk.jfr.Recording jdk.jfr.internal.SecuritySupport$SafePath
      StackMap stack: java.lang.Exception
        61: astore 15 /* e */
        start local 15 // java.lang.Exception e
        62: .line 180
            aload 13 /* recording */
            invokevirtual jdk.jfr.Recording.close:()V
        63: .line 181
            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 15 /* 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 15 // java.lang.Exception e
        64: .line 185
      StackMap locals:
      StackMap stack:
            aload 7 /* maxAge */
            ifnull 66
        65: .line 186
            aload 13 /* 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
        66: .line 189
      StackMap locals:
      StackMap stack:
            aload 9 /* flush */
            ifnull 69
        67: .line 190
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 13 /* recording */
            invokevirtual jdk.jfr.internal.PrivateAccess.getPlatformRecording:(Ljdk/jfr/Recording;)Ljdk/jfr/internal/PlatformRecording;
            astore 15 /* p */
        start local 15 // jdk.jfr.internal.PlatformRecording p
        68: .line 191
            aload 15 /* p */
            aload 9 /* flush */
            invokevirtual java.lang.Long.longValue:()J
            invokestatic java.time.Duration.ofNanos:(J)Ljava/time/Duration;
            invokevirtual jdk.jfr.internal.PlatformRecording.setFlushInterval:(Ljava/time/Duration;)V
        end local 15 // jdk.jfr.internal.PlatformRecording p
        69: .line 194
      StackMap locals:
      StackMap stack:
            aload 8 /* maxSize */
            ifnull 71
        70: .line 195
            aload 13 /* recording */
            aload 8 /* maxSize */
            invokevirtual java.lang.Long.longValue:()J
            invokevirtual jdk.jfr.Recording.setMaxSize:(J)V
        71: .line 198
      StackMap locals:
      StackMap stack:
            aload 4 /* duration */
            ifnull 73
        72: .line 199
            aload 13 /* 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
        73: .line 202
      StackMap locals:
      StackMap stack:
            aload 10 /* dumpOnExit */
            ifnull 75
        74: .line 203
            aload 13 /* recording */
            aload 10 /* dumpOnExit */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual jdk.jfr.Recording.setDumpOnExit:(Z)V
        75: .line 206
      StackMap locals:
      StackMap stack:
            aload 3 /* delay */
            ifnull 82
        76: .line 207
            aload 3 /* delay */
            invokevirtual java.lang.Long.longValue:()J
            invokestatic java.time.Duration.ofNanos:(J)Ljava/time/Duration;
            astore 15 /* dDelay */
        start local 15 // java.time.Duration dDelay
        77: .line 208
            aload 13 /* recording */
            aload 15 /* dDelay */
            invokevirtual jdk.jfr.Recording.scheduleStart:(Ljava/time/Duration;)V
        78: .line 209
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Recording "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* 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
        79: .line 210
            aload 0 /* this */
            aload 15 /* dDelay */
            ldc " "
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.printTimespan:(Ljava/time/Duration;Ljava/lang/String;)V
        80: .line 211
            aload 0 /* this */
            ldc "."
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.print:(Ljava/lang/String;)V
        end local 15 // java.time.Duration dDelay
        81: .line 212
            goto 84
        82: .line 213
      StackMap locals:
      StackMap stack:
            aload 13 /* recording */
            invokevirtual jdk.jfr.Recording.start:()V
        83: .line 214
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Started recording "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* 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
        84: .line 217
      StackMap locals:
      StackMap stack:
            aload 13 /* recording */
            invokevirtual jdk.jfr.Recording.isToDisk:()Z
            ifeq 87
            aload 4 /* duration */
            ifnonnull 87
            aload 7 /* maxAge */
            ifnonnull 87
            aload 8 /* maxSize */
            ifnonnull 87
        85: .line 218
            aload 0 /* this */
            ldc " No limit specified, using maxsize=250MB as default."
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.print:(Ljava/lang/String;)V
        86: .line 219
            aload 13 /* recording */
            ldc 262144000
            invokevirtual jdk.jfr.Recording.setMaxSize:(J)V
        87: .line 222
      StackMap locals:
      StackMap stack:
            aload 14 /* safePath */
            ifnull 92
            aload 4 /* duration */
            ifnull 92
        88: .line 223
            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
        89: .line 224
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.println:()V
        90: .line 225
            aload 0 /* this */
            aload 14 /* safePath */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.printPath:(Ljdk/jfr/internal/SecuritySupport$SafePath;)V
        91: .line 226
            goto 105
        92: .line 227
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.println:()V
        93: .line 228
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.println:()V
        94: .line 229
            aload 4 /* duration */
            ifnonnull 95
            ldc "dump"
            goto 96
      StackMap locals:
      StackMap stack:
        95: ldc "stop"
      StackMap locals:
      StackMap stack: java.lang.String
        96: astore 15 /* cmd */
        start local 15 // java.lang.String cmd
        97: .line 230
            aload 6 /* path */
            ifnonnull 98
            ldc "filename=FILEPATH "
            goto 99
      StackMap locals: java.lang.String
      StackMap stack:
        98: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
        99: astore 16 /* fileOption */
        start local 16 // java.lang.String fileOption
       100: .line 231
            new java.lang.StringBuilder
            dup
            ldc "name="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* 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 17 /* recordingspecifier */
        start local 17 // java.lang.String recordingspecifier
       101: .line 233
            aload 1 /* name */
            ifnull 103
       102: .line 234
            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 17 /* recordingspecifier */
       103: .line 236
      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 15 /* 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 17 /* 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 16 /* 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
       104: .line 237
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.println:()V
        end local 17 // java.lang.String recordingspecifier
        end local 16 // java.lang.String fileOption
        end local 15 // java.lang.String cmd
       105: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.getResult:()Ljava/lang/String;
            areturn
        end local 14 // jdk.jfr.internal.SecuritySupport$SafePath safePath
        end local 13 // jdk.jfr.Recording recording
        end local 12 // java.util.Map s
        end local 11 // java.lang.Boolean pathToGcRoots
        end local 10 // java.lang.Boolean dumpOnExit
        end local 9 // java.lang.Long flush
        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  106     0                this  Ljdk/jfr/internal/dcmd/DCmdStart;
            0  106     1                name  Ljava/lang/String;
            0  106     2            settings  [Ljava/lang/String;
            0  106     3               delay  Ljava/lang/Long;
            0  106     4            duration  Ljava/lang/Long;
            0  106     5                disk  Ljava/lang/Boolean;
            0  106     6                path  Ljava/lang/String;
            0  106     7              maxAge  Ljava/lang/Long;
            0  106     8             maxSize  Ljava/lang/Long;
            0  106     9               flush  Ljava/lang/Long;
            0  106    10          dumpOnExit  Ljava/lang/Boolean;
            0  106    11       pathToGcRoots  Ljava/lang/Boolean;
           22  106    12                   s  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           24   30    13          configName  Ljava/lang/String;
           27   28    17                   e  Ljava/io/FileNotFoundException;
           29   30    17                   e  Ljava/lang/Exception;
           45  106    13           recording  Ljdk/jfr/Recording;
           51  106    14            safePath  Ljdk/jfr/internal/SecuritySupport$SafePath;
           55   60    15                   p  Ljava/nio/file/Path;
           62   64    15                   e  Ljava/lang/Exception;
           68   69    15                   p  Ljdk/jfr/internal/PlatformRecording;
           77   81    15              dDelay  Ljava/time/Duration;
           97  105    15                 cmd  Ljava/lang/String;
          100  105    16          fileOption  Ljava/lang/String;
          101  105    17  recordingspecifier  Ljava/lang/String;
      Exception table:
        from    to  target  type
          14    16      16  Class java.lang.NumberFormatException
          24    25      26  Class java.io.FileNotFoundException
          24    25      28  Class java.io.IOException
          24    25      28  Class java.text.ParseException
          52    60      61  Class java.io.IOException
          52    60      61  Class java.nio.file.InvalidPathException
    Exceptions:
      throws jdk.jfr.internal.dcmd.DCmdException
    MethodParameters:
               Name  Flags
      name           
      settings       
      delay          
      duration       
      disk           
      path           
      maxAge         
      maxSize        
      flush          
      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 246
            aload 0 /* this */
            aload 1 /* settings */
            invokevirtual jdk.jfr.internal.dcmd.DCmdStart.hasJDKEvents:(Ljava/util/Map;)Z
            ifne 2
         1: .line 247
            return
         2: .line 249
      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 251
            aload 2 /* jvm */
            iconst_1
            invokevirtual jdk.jfr.internal.JVM.setForceInstrumentation:(Z)V
         4: .line 252
            invokestatic jdk.jfr.FlightRecorder.getFlightRecorder:()Ljdk/jfr/FlightRecorder;
            pop
         5: .line 253
            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 254
            aload 2 /* jvm */
            iconst_0
            invokevirtual jdk.jfr.internal.JVM.setForceInstrumentation:(Z)V
         8: .line 255
            aload 3
            athrow
         9: .line 254
      StackMap locals:
      StackMap stack:
            aload 2 /* jvm */
            iconst_0
            invokevirtual jdk.jfr.internal.JVM.setForceInstrumentation:(Z)V
        10: .line 256
            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 259
            bipush 7
            anewarray java.lang.String
            astore 2 /* eventNames */
        start local 2 // java.lang.String[] eventNames
         1: .line 260
            aload 2 /* eventNames */
            iconst_0
            ldc "FileRead"
            aastore
         2: .line 261
            aload 2 /* eventNames */
            iconst_1
            ldc "FileWrite"
            aastore
         3: .line 262
            aload 2 /* eventNames */
            iconst_2
            ldc "SocketRead"
            aastore
         4: .line 263
            aload 2 /* eventNames */
            iconst_3
            ldc "SocketWrite"
            aastore
         5: .line 264
            aload 2 /* eventNames */
            iconst_4
            ldc "JavaErrorThrow"
            aastore
         6: .line 265
            aload 2 /* eventNames */
            iconst_5
            ldc "JavaExceptionThrow"
            aastore
         7: .line 266
            aload 2 /* eventNames */
            bipush 6
            ldc "FileForce"
            aastore
         8: .line 267
            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 268
            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 269
            iconst_1
            ireturn
        end local 3 // java.lang.String eventName
        12: .line 267
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        13: iload 4
            iload 5
            if_icmplt 9
        14: .line 272
            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