public class org.openjdk.jmh.profile.LinuxPerfAsmProfiler extends org.openjdk.jmh.profile.AbstractPerfAsmProfiler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.openjdk.jmh.profile.LinuxPerfAsmProfiler
  super_class: org.openjdk.jmh.profile.AbstractPerfAsmProfiler
{
  private final long sampleFrequency;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private joptsimple.OptionSpec<java.lang.Long> optFrequency;
    descriptor: Ljoptsimple/OptionSpec;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljoptsimple/OptionSpec<Ljava/lang/Long;>;

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler this
        start local 1 // java.lang.String initLine
         0: .line 47
            aload 0 /* this */
            aload 1 /* initLine */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "cycles"
            aastore
            invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler.<init>:(Ljava/lang/String;[Ljava/lang/String;)V
         1: .line 49
            bipush 6
            anewarray java.lang.String
            dup
            iconst_0
            getstatic org.openjdk.jmh.profile.PerfSupport.PERF_EXEC:Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "stat"
            aastore
            dup
            iconst_2
            ldc "--log-fd"
            aastore
            dup
            iconst_3
            ldc "2"
            aastore
            dup
            iconst_4
            ldc "echo"
            aastore
            dup
            iconst_5
            ldc "1"
            aastore
            invokestatic org.openjdk.jmh.util.Utils.tryWith:([Ljava/lang/String;)Ljava/util/Collection;
            astore 2 /* failMsg */
        start local 2 // java.util.Collection failMsg
         2: .line 50
            aload 2 /* failMsg */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 4
         3: .line 51
            new org.openjdk.jmh.profile.ProfilerException
            dup
            aload 2 /* failMsg */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokespecial org.openjdk.jmh.profile.ProfilerException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 55
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler java.lang.String java.util.Collection
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.set:Ljoptsimple/OptionSet;
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.optFrequency:Ljoptsimple/OptionSpec;
            invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            putfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.sampleFrequency:J
         5: .line 56
            goto 8
      StackMap locals:
      StackMap stack: joptsimple.OptionException
         6: astore 3 /* e */
        start local 3 // joptsimple.OptionException e
         7: .line 57
            new org.openjdk.jmh.profile.ProfilerException
            dup
            aload 3 /* e */
            invokevirtual joptsimple.OptionException.getMessage:()Ljava/lang/String;
            invokespecial org.openjdk.jmh.profile.ProfilerException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // joptsimple.OptionException e
         8: .line 59
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.Collection failMsg
        end local 1 // java.lang.String initLine
        end local 0 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler;
            0    9     1  initLine  Ljava/lang/String;
            2    9     2   failMsg  Ljava/util/Collection<Ljava/lang/String;>;
            7    8     3         e  Ljoptsimple/OptionException;
      Exception table:
        from    to  target  type
           4     5       6  Class joptsimple.OptionException
    Exceptions:
      throws org.openjdk.jmh.profile.ProfilerException
    MethodParameters:
          Name  Flags
      initLine  

  protected void addMyOptions(joptsimple.OptionParser);
    descriptor: (Ljoptsimple/OptionParser;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler this
        start local 1 // joptsimple.OptionParser parser
         0: .line 63
            aload 0 /* this */
            aload 1 /* parser */
            ldc "frequency"
         1: .line 64
            ldc "Sampling frequency. This is synonymous to perf record --freq #"
         2: .line 63
            invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
         3: .line 65
            invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc Ljava/lang/Long;
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc "freq"
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc 1000
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            iconst_0
            anewarray java.lang.Long
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
         4: .line 63
            putfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.optFrequency:Ljoptsimple/OptionSpec;
         5: .line 66
            return
        end local 1 // joptsimple.OptionParser parser
        end local 0 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler;
            0    6     1  parser  Ljoptsimple/OptionParser;
    MethodParameters:
        Name  Flags
      parser  

  public java.util.Collection<java.lang.String> addJVMInvokeOptions(org.openjdk.jmh.infra.BenchmarkParams);
    descriptor: (Lorg/openjdk/jmh/infra/BenchmarkParams;)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler this
        start local 1 // org.openjdk.jmh.infra.BenchmarkParams params
         0: .line 70
            bipush 8
            anewarray java.lang.String
            dup
            iconst_0
            getstatic org.openjdk.jmh.profile.PerfSupport.PERF_EXEC:Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "record"
            aastore
            dup
            iconst_2
            ldc "--freq"
            aastore
            dup
            iconst_3
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.sampleFrequency:J
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            aastore
            dup
            iconst_4
            ldc "--event"
            aastore
            dup
            iconst_5
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.events:Ljava/util/List;
            ldc ","
            invokestatic org.openjdk.jmh.util.Utils.join:(Ljava/util/Collection;Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            bipush 6
            ldc "--output"
            aastore
            dup
            bipush 7
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.perfBinData:Lorg/openjdk/jmh/util/TempFile;
            invokevirtual org.openjdk.jmh.util.TempFile.getAbsolutePath:()Ljava/lang/String;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 1 // org.openjdk.jmh.infra.BenchmarkParams params
        end local 0 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler;
            0    1     1  params  Lorg/openjdk/jmh/infra/BenchmarkParams;
    Signature: (Lorg/openjdk/jmh/infra/BenchmarkParams;)Ljava/util/Collection<Ljava/lang/String;>;
    MethodParameters:
        Name  Flags
      params  

  public java.lang.String getDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler this
         0: .line 75
            ldc "Linux perf + PrintAssembly Profiler"
            areturn
        end local 0 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler;

  protected void parseEvents();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=8, args_size=1
        start local 0 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler this
         0: .line 80
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: new java.io.FileOutputStream
            dup
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.perfParsedData:Lorg/openjdk/jmh/util/TempFile;
            invokevirtual org.openjdk.jmh.util.TempFile.file:()Ljava/io/File;
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 3 /* fos */
        start local 3 // java.io.FileOutputStream fos
         2: .line 81
            new java.lang.ProcessBuilder
            dup
            bipush 6
            anewarray java.lang.String
            dup
            iconst_0
            getstatic org.openjdk.jmh.profile.PerfSupport.PERF_EXEC:Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "script"
            aastore
            dup
            iconst_2
            ldc "--fields"
            aastore
            dup
            iconst_3
            ldc "time,event,ip,sym,dso"
            aastore
            dup
            iconst_4
            ldc "--input"
            aastore
            dup
            iconst_5
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.perfBinData:Lorg/openjdk/jmh/util/TempFile;
            invokevirtual org.openjdk.jmh.util.TempFile.getAbsolutePath:()Ljava/lang/String;
            aastore
            invokespecial java.lang.ProcessBuilder.<init>:([Ljava/lang/String;)V
            astore 4 /* pb */
        start local 4 // java.lang.ProcessBuilder pb
         3: .line 82
            aload 4 /* pb */
            invokevirtual java.lang.ProcessBuilder.start:()Ljava/lang/Process;
            astore 5 /* p */
        start local 5 // java.lang.Process p
         4: .line 85
            new org.openjdk.jmh.util.InputStreamDrainer
            dup
            aload 5 /* p */
            invokevirtual java.lang.Process.getErrorStream:()Ljava/io/InputStream;
            aload 3 /* fos */
            invokespecial org.openjdk.jmh.util.InputStreamDrainer.<init>:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
            astore 6 /* errDrainer */
        start local 6 // org.openjdk.jmh.util.InputStreamDrainer errDrainer
         5: .line 86
            new org.openjdk.jmh.util.InputStreamDrainer
            dup
            aload 5 /* p */
            invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
            aload 3 /* fos */
            invokespecial org.openjdk.jmh.util.InputStreamDrainer.<init>:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
            astore 7 /* outDrainer */
        start local 7 // org.openjdk.jmh.util.InputStreamDrainer outDrainer
         6: .line 88
            aload 6 /* errDrainer */
            invokevirtual org.openjdk.jmh.util.InputStreamDrainer.start:()V
         7: .line 89
            aload 7 /* outDrainer */
            invokevirtual org.openjdk.jmh.util.InputStreamDrainer.start:()V
         8: .line 91
            aload 5 /* p */
            invokevirtual java.lang.Process.waitFor:()I
            pop
         9: .line 93
            aload 6 /* errDrainer */
            invokevirtual org.openjdk.jmh.util.InputStreamDrainer.join:()V
        10: .line 94
            aload 7 /* outDrainer */
            invokevirtual org.openjdk.jmh.util.InputStreamDrainer.join:()V
        end local 7 // org.openjdk.jmh.util.InputStreamDrainer outDrainer
        end local 6 // org.openjdk.jmh.util.InputStreamDrainer errDrainer
        end local 5 // java.lang.Process p
        end local 4 // java.lang.ProcessBuilder pb
        11: .line 95
            aload 3 /* fos */
            ifnull 19
            aload 3 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 19
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler java.lang.Throwable java.lang.Throwable java.io.FileOutputStream
      StackMap stack: java.lang.Throwable
        12: astore 1
            aload 3 /* fos */
            ifnull 13
            aload 3 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
        end local 3 // java.io.FileOutputStream fos
      StackMap locals:
      StackMap stack:
        13: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 2
            aload 1
            ifnonnull 15
            aload 2
            astore 1
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 1
            aload 2
            if_acmpeq 16
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 1
            athrow
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler
      StackMap stack: java.lang.Exception
        17: astore 1 /* ex */
        start local 1 // java.lang.Exception ex
        18: .line 96
            new java.lang.IllegalStateException
            dup
            aload 1 /* ex */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception ex
        19: .line 98
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler;
            2   13     3         fos  Ljava/io/FileOutputStream;
            3   11     4          pb  Ljava/lang/ProcessBuilder;
            4   11     5           p  Ljava/lang/Process;
            5   11     6  errDrainer  Lorg/openjdk/jmh/util/InputStreamDrainer;
            6   11     7  outDrainer  Lorg/openjdk/jmh/util/InputStreamDrainer;
           18   19     1          ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2    11      12  any
           1    14      14  any
           0    17      17  Class java.io.IOException
           0    17      17  Class java.lang.InterruptedException

  static org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine parsePerfLine(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler$PerfLine;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=16, args_size=1
        start local 0 // java.lang.String line
         0: .line 101
            aload 0 /* line */
            ldc "#"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 102
            aconst_null
            areturn
         2: .line 115
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 1 /* lastLength */
        start local 1 // int lastLength
         3: .line 116
            goto 6
         4: .line 117
      StackMap locals: int
      StackMap stack:
            aload 0 /* line */
            invokevirtual java.lang.String.length:()I
            istore 1 /* lastLength */
         5: .line 118
            aload 0 /* line */
            ldc "  "
            ldc " "
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 0 /* line */
         6: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* line */
            invokevirtual java.lang.String.length:()I
            iload 1 /* lastLength */
            if_icmpne 4
         7: .line 122
            aload 0 /* line */
            ldc ": "
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 2 /* timeIdx */
        start local 2 // int timeIdx
         8: .line 123
            iload 2 /* timeIdx */
            iconst_m1
            if_icmpne 9
            aconst_null
            areturn
         9: .line 124
      StackMap locals: int
      StackMap stack:
            aload 0 /* line */
            iconst_0
            iload 2 /* timeIdx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* strTime */
        start local 3 // java.lang.String strTime
        10: .line 125
            aload 0 /* line */
            iload 2 /* timeIdx */
            iconst_2
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 0 /* line */
        11: .line 129
            aload 3 /* strTime */
            invokestatic java.lang.Double.valueOf:(Ljava/lang/String;)Ljava/lang/Double;
            invokevirtual java.lang.Double.doubleValue:()D
            dstore 4 /* time */
        start local 4 // double time
        12: .line 130
            goto 15
        end local 4 // double time
      StackMap locals: java.lang.String int int java.lang.String
      StackMap stack: java.lang.NumberFormatException
        13: pop
        14: .line 131
            aconst_null
            areturn
        start local 4 // double time
        15: .line 135
      StackMap locals: double
      StackMap stack:
            aload 0 /* line */
            ldc " ("
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 6 /* libIdx */
        start local 6 // int libIdx
        16: .line 136
            iload 6 /* libIdx */
            iconst_m1
            if_icmpne 17
            aconst_null
            areturn
        17: .line 137
      StackMap locals: int
      StackMap stack:
            aload 0 /* line */
            iload 6 /* libIdx */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 7 /* lib */
        start local 7 // java.lang.String lib
        18: .line 138
            aload 7 /* lib */
            aload 7 /* lib */
            ldc "/"
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            iconst_1
            iadd
            aload 7 /* lib */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            ldc "("
            ldc ""
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            ldc ")"
            ldc ""
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 7 /* lib */
        19: .line 139
            aload 0 /* line */
            iconst_0
            iload 6 /* libIdx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 0 /* line */
        20: .line 142
            aload 0 /* line */
            ldc ": "
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 8 /* evIdx */
        start local 8 // int evIdx
        21: .line 143
            iload 8 /* evIdx */
            iconst_m1
            if_icmpne 22
            aconst_null
            areturn
        22: .line 144
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* line */
            iconst_0
            iload 8 /* evIdx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 9 /* evName */
        start local 9 // java.lang.String evName
        23: .line 145
            aload 9 /* evName */
            ldc ":"
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 10 /* tagIdx */
        start local 10 // int tagIdx
        24: .line 146
            iload 10 /* tagIdx */
            iconst_m1
            if_icmpeq 26
        25: .line 147
            aload 9 /* evName */
            iconst_0
            iload 10 /* tagIdx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 9 /* evName */
        26: .line 149
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* line */
            iload 8 /* evIdx */
            iconst_2
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 0 /* line */
        27: .line 152
            aload 0 /* line */
            ldc " "
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 11 /* addrIdx */
        start local 11 // int addrIdx
        28: .line 153
            iload 11 /* addrIdx */
            iconst_m1
            if_icmpne 29
            aconst_null
            areturn
        29: .line 154
      StackMap locals: int
      StackMap stack:
            aload 0 /* line */
            iconst_0
            iload 11 /* addrIdx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 12 /* strAddr */
        start local 12 // java.lang.String strAddr
        30: .line 155
            aload 0 /* line */
            iload 11 /* addrIdx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 0 /* line */
        31: .line 162
            aload 12 /* strAddr */
            bipush 16
            invokestatic java.lang.Long.valueOf:(Ljava/lang/String;I)Ljava/lang/Long;
            invokevirtual java.lang.Long.longValue:()J
            lstore 13 /* addr */
        start local 13 // long addr
        32: .line 163
            goto 40
        end local 13 // long addr
      StackMap locals: java.lang.String int int java.lang.String double int java.lang.String int java.lang.String int int java.lang.String
      StackMap stack: java.lang.NumberFormatException
        33: pop
        34: .line 165
            new java.math.BigInteger
            dup
            aload 12 /* strAddr */
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
            invokevirtual java.math.BigInteger.longValue:()J
            lstore 13 /* addr */
        start local 13 // long addr
        35: .line 166
            lload 13 /* addr */
            lconst_0
            lcmp
            ifge 40
            aload 7 /* lib */
            ldc "unknown"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 40
        36: .line 167
            ldc "kernel"
            astore 7 /* lib */
        37: .line 169
            goto 40
        end local 13 // long addr
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
        38: pop
        39: .line 170
            lconst_0
            lstore 13 /* addr */
        start local 13 // long addr
        40: .line 175
      StackMap locals: long
      StackMap stack:
            aload 0 /* line */
            astore 15 /* symbol */
        start local 15 // java.lang.String symbol
        41: .line 177
            new org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine
            dup
            dload 4 /* time */
            aload 9 /* evName */
            lload 13 /* addr */
            aload 15 /* symbol */
            aload 7 /* lib */
            invokespecial org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.<init>:(DLjava/lang/String;JLjava/lang/String;Ljava/lang/String;)V
            areturn
        end local 15 // java.lang.String symbol
        end local 13 // long addr
        end local 12 // java.lang.String strAddr
        end local 11 // int addrIdx
        end local 10 // int tagIdx
        end local 9 // java.lang.String evName
        end local 8 // int evIdx
        end local 7 // java.lang.String lib
        end local 6 // int libIdx
        end local 4 // double time
        end local 3 // java.lang.String strTime
        end local 2 // int timeIdx
        end local 1 // int lastLength
        end local 0 // java.lang.String line
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   42     0        line  Ljava/lang/String;
            3   42     1  lastLength  I
            8   42     2     timeIdx  I
           10   42     3     strTime  Ljava/lang/String;
           12   13     4        time  D
           15   42     4        time  D
           16   42     6      libIdx  I
           18   42     7         lib  Ljava/lang/String;
           21   42     8       evIdx  I
           23   42     9      evName  Ljava/lang/String;
           24   42    10      tagIdx  I
           28   42    11     addrIdx  I
           30   42    12     strAddr  Ljava/lang/String;
           32   33    13        addr  J
           35   38    13        addr  J
           40   42    13        addr  J
           41   42    15      symbol  Ljava/lang/String;
      Exception table:
        from    to  target  type
          11    12      13  Class java.lang.NumberFormatException
          31    32      33  Class java.lang.NumberFormatException
          34    37      38  Class java.lang.NumberFormatException
    MethodParameters:
      Name  Flags
      line  

  protected org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents readEvents(double, double);
    descriptor: (DD)Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$PerfEvents;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=22, args_size=3
        start local 0 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler this
        start local 1 // double skipMs
        start local 3 // double lenMs
         0: .line 218
            dload 1 /* skipMs */
            ldc 1000.0
            ddiv
            dstore 5 /* readFrom */
        start local 5 // double readFrom
         1: .line 219
            dload 1 /* skipMs */
            dload 3 /* lenMs */
            dadd
            ldc 1000.0
            ddiv
            dstore 7 /* readTo */
        start local 7 // double readTo
         2: .line 221
            aconst_null
            astore 9
            aconst_null
            astore 10
         3: new java.io.FileReader
            dup
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.perfParsedData:Lorg/openjdk/jmh/util/TempFile;
            invokevirtual org.openjdk.jmh.util.TempFile.file:()Ljava/io/File;
            invokespecial java.io.FileReader.<init>:(Ljava/io/File;)V
            astore 11 /* fr */
        start local 11 // java.io.FileReader fr
         4: .line 222
            new java.io.BufferedReader
            dup
            aload 11 /* fr */
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 12 /* reader */
        start local 12 // java.io.BufferedReader reader
         5: .line 223
            new org.openjdk.jmh.util.Deduplicator
            dup
            invokespecial org.openjdk.jmh.util.Deduplicator.<init>:()V
            astore 13 /* dedup */
        start local 13 // org.openjdk.jmh.util.Deduplicator dedup
         6: .line 225
            new org.openjdk.jmh.util.HashMultimap
            dup
            invokespecial org.openjdk.jmh.util.HashMultimap.<init>:()V
            astore 14 /* methods */
        start local 14 // org.openjdk.jmh.util.Multimap methods
         7: .line 226
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 15 /* events */
        start local 15 // java.util.Map events
         8: .line 227
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.events:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 17
            goto 11
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler double double double double java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader org.openjdk.jmh.util.Deduplicator org.openjdk.jmh.util.Multimap java.util.Map top java.util.Iterator
      StackMap stack:
         9: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 16 /* evName */
        start local 16 // java.lang.String evName
        10: .line 228
            aload 15 /* events */
            aload 16 /* evName */
            new org.openjdk.jmh.util.TreeMultiset
            dup
            invokespecial org.openjdk.jmh.util.TreeMultiset.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 16 // java.lang.String evName
        11: .line 227
      StackMap locals:
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        12: .line 231
            aconst_null
            astore 16 /* startTime */
        start local 16 // java.lang.Double startTime
        13: .line 234
            goto 30
        start local 17 // java.lang.String line
        14: .line 235
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler double double double double java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader org.openjdk.jmh.util.Deduplicator org.openjdk.jmh.util.Multimap java.util.Map java.lang.Double java.lang.String
      StackMap stack:
            aload 17 /* line */
            invokestatic org.openjdk.jmh.profile.LinuxPerfAsmProfiler.parsePerfLine:(Ljava/lang/String;)Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler$PerfLine;
            astore 18 /* perfline */
        start local 18 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine perfline
        15: .line 236
            aload 18 /* perfline */
            ifnonnull 17
        16: .line 237
            goto 30
        17: .line 240
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine
      StackMap stack:
            aload 16 /* startTime */
            ifnonnull 20
        18: .line 241
            aload 18 /* perfline */
            invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.time:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            astore 16 /* startTime */
        19: .line 242
            goto 24
        20: .line 243
      StackMap locals:
      StackMap stack:
            aload 18 /* perfline */
            invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.time:()D
            aload 16 /* startTime */
            invokevirtual java.lang.Double.doubleValue:()D
            dsub
            dload 5 /* readFrom */
            dcmpg
            ifge 22
        21: .line 244
            goto 30
        22: .line 246
      StackMap locals:
      StackMap stack:
            aload 18 /* perfline */
            invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.time:()D
            aload 16 /* startTime */
            invokevirtual java.lang.Double.doubleValue:()D
            dsub
            dload 7 /* readTo */
            dcmpl
            ifle 24
        23: .line 247
            goto 30
        24: .line 251
      StackMap locals:
      StackMap stack:
            aload 15 /* events */
            aload 18 /* perfline */
            invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.eventName:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.openjdk.jmh.util.Multiset
            astore 19 /* evs */
        start local 19 // org.openjdk.jmh.util.Multiset evs
        25: .line 252
            aload 19 /* evs */
            ifnonnull 27
        26: .line 254
            goto 30
        27: .line 257
      StackMap locals: org.openjdk.jmh.util.Multiset
      StackMap stack:
            aload 19 /* evs */
            aload 18 /* perfline */
            invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.addr:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.openjdk.jmh.util.Multiset.add:(Ljava/lang/Object;)V
        28: .line 258
            aload 13 /* dedup */
            aload 18 /* perfline */
            invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.symbol:()Ljava/lang/String;
            aload 18 /* perfline */
            invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.lib:()Ljava/lang/String;
            invokestatic org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc.nativeMethod:(Ljava/lang/String;Ljava/lang/String;)Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
            invokevirtual org.openjdk.jmh.util.Deduplicator.dedup:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc
            astore 20 /* desc */
        start local 20 // org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc desc
        29: .line 259
            aload 14 /* methods */
            aload 20 /* desc */
            aload 18 /* perfline */
            invokevirtual org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine.addr:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.openjdk.jmh.util.Multimap.put:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 20 // org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc desc
        end local 19 // org.openjdk.jmh.util.Multiset evs
        end local 18 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine perfline
        end local 17 // java.lang.String line
        30: .line 234
      StackMap locals:
      StackMap stack:
            aload 12 /* reader */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            dup
            astore 17 /* line */
        start local 17 // java.lang.String line
        31: ifnonnull 14
        32: .line 262
            new org.openjdk.jmh.util.IntervalMap
            dup
            invokespecial org.openjdk.jmh.util.IntervalMap.<init>:()V
            astore 18 /* methodMap */
        start local 18 // org.openjdk.jmh.util.IntervalMap methodMap
        33: .line 263
            aload 14 /* methods */
            invokeinterface org.openjdk.jmh.util.Multimap.keys:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 20
            goto 37
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler double double double double java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader org.openjdk.jmh.util.Deduplicator org.openjdk.jmh.util.Multimap java.util.Map java.lang.Double java.lang.String org.openjdk.jmh.util.IntervalMap top java.util.Iterator
      StackMap stack:
        34: aload 20
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc
            astore 19 /* md */
        start local 19 // org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc md
        35: .line 264
            aload 14 /* methods */
            aload 19 /* md */
            invokeinterface org.openjdk.jmh.util.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
            astore 21 /* addrs */
        start local 21 // java.util.Collection addrs
        36: .line 265
            aload 18 /* methodMap */
            aload 19 /* md */
            aload 21 /* addrs */
            invokestatic org.openjdk.jmh.util.Utils.min:(Ljava/util/Collection;)Ljava/lang/Comparable;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            aload 21 /* addrs */
            invokestatic org.openjdk.jmh.util.Utils.max:(Ljava/util/Collection;)Ljava/lang/Comparable;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            invokevirtual org.openjdk.jmh.util.IntervalMap.add:(Ljava/lang/Object;JJ)V
        end local 21 // java.util.Collection addrs
        end local 19 // org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc md
        37: .line 263
      StackMap locals:
      StackMap stack:
            aload 20
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 34
        38: .line 268
            new org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents
            dup
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.events:Ljava/util/List;
            aload 15 /* events */
            aload 18 /* methodMap */
            invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents.<init>:(Ljava/util/Collection;Ljava/util/Map;Lorg/openjdk/jmh/util/IntervalMap;)V
        39: .line 269
            aload 12 /* reader */
            ifnull 40
            aload 12 /* reader */
            invokevirtual java.io.BufferedReader.close:()V
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler double double double double java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader org.openjdk.jmh.util.Deduplicator org.openjdk.jmh.util.Multimap java.util.Map java.lang.Double java.lang.String org.openjdk.jmh.util.IntervalMap
      StackMap stack: org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents
        40: aload 11 /* fr */
            ifnull 41
            aload 11 /* fr */
            invokevirtual java.io.FileReader.close:()V
        41: .line 268
      StackMap locals:
      StackMap stack: org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents
            areturn
        end local 18 // org.openjdk.jmh.util.IntervalMap methodMap
        end local 17 // java.lang.String line
        end local 16 // java.lang.Double startTime
        end local 15 // java.util.Map events
        end local 14 // org.openjdk.jmh.util.Multimap methods
        end local 13 // org.openjdk.jmh.util.Deduplicator dedup
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler double double double double java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader
      StackMap stack: java.lang.Throwable
        42: astore 9
        43: .line 269
            aload 12 /* reader */
            ifnull 44
            aload 12 /* reader */
            invokevirtual java.io.BufferedReader.close:()V
        end local 12 // java.io.BufferedReader reader
      StackMap locals:
      StackMap stack:
        44: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        45: astore 10
            aload 9
            ifnonnull 46
            aload 10
            astore 9
            goto 47
      StackMap locals:
      StackMap stack:
        46: aload 9
            aload 10
            if_acmpeq 47
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        47: aload 11 /* fr */
            ifnull 48
            aload 11 /* fr */
            invokevirtual java.io.FileReader.close:()V
        end local 11 // java.io.FileReader fr
      StackMap locals:
      StackMap stack:
        48: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        49: astore 10
            aload 9
            ifnonnull 50
            aload 10
            astore 9
            goto 51
      StackMap locals:
      StackMap stack:
        50: aload 9
            aload 10
            if_acmpeq 51
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        51: aload 9
            athrow
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfAsmProfiler double double double double
      StackMap stack: java.io.IOException
        52: pop
        53: .line 270
            new org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents
            dup
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfAsmProfiler.events:Ljava/util/List;
            invokespecial org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents.<init>:(Ljava/util/Collection;)V
            areturn
        end local 7 // double readTo
        end local 5 // double readFrom
        end local 3 // double lenMs
        end local 1 // double skipMs
        end local 0 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   54     0       this  Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler;
            0   54     1     skipMs  D
            0   54     3      lenMs  D
            1   54     5   readFrom  D
            2   54     7     readTo  D
            4   48    11         fr  Ljava/io/FileReader;
            5   44    12     reader  Ljava/io/BufferedReader;
            6   42    13      dedup  Lorg/openjdk/jmh/util/Deduplicator<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;>;
            7   42    14    methods  Lorg/openjdk/jmh/util/Multimap<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;Ljava/lang/Long;>;
            8   42    15     events  Ljava/util/Map<Ljava/lang/String;Lorg/openjdk/jmh/util/Multiset<Ljava/lang/Long;>;>;
           10   11    16     evName  Ljava/lang/String;
           13   42    16  startTime  Ljava/lang/Double;
           14   30    17       line  Ljava/lang/String;
           31   42    17       line  Ljava/lang/String;
           15   30    18   perfline  Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler$PerfLine;
           25   30    19        evs  Lorg/openjdk/jmh/util/Multiset<Ljava/lang/Long;>;
           29   30    20       desc  Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
           33   42    18  methodMap  Lorg/openjdk/jmh/util/IntervalMap<Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;>;
           35   37    19         md  Lorg/openjdk/jmh/profile/AbstractPerfAsmProfiler$MethodDesc;
           36   37    21      addrs  Ljava/util/Collection<Ljava/lang/Long;>;
      Exception table:
        from    to  target  type
           5    39      42  any
           4    40      45  any
          42    45      45  any
           3    41      49  any
          42    49      49  any
           2    41      52  Class java.io.IOException
          42    52      52  Class java.io.IOException
    MethodParameters:
        Name  Flags
      skipMs  
      lenMs   

  protected java.lang.String perfBinaryExtension();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler this
         0: .line 277
            ldc ".perfbin"
            areturn
        end local 0 // org.openjdk.jmh.profile.LinuxPerfAsmProfiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/openjdk/jmh/profile/LinuxPerfAsmProfiler;
}
SourceFile: "LinuxPerfAsmProfiler.java"
NestMembers:
  org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine
InnerClasses:
  MethodDesc = org.openjdk.jmh.profile.AbstractPerfAsmProfiler$MethodDesc of org.openjdk.jmh.profile.AbstractPerfAsmProfiler
  protected PerfEvents = org.openjdk.jmh.profile.AbstractPerfAsmProfiler$PerfEvents of org.openjdk.jmh.profile.AbstractPerfAsmProfiler
  PerfLine = org.openjdk.jmh.profile.LinuxPerfAsmProfiler$PerfLine of org.openjdk.jmh.profile.LinuxPerfAsmProfiler