public class sun.jvm.hotspot.debugger.posix.elf.ELFFileParser
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.debugger.posix.elf.ELFFileParser
  super_class: java.lang.Object
{
  private static sun.jvm.hotspot.debugger.posix.elf.ELFFileParser elfParser;
    descriptor: Lsun/jvm/hotspot/debugger/posix/elf/ELFFileParser;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final java.lang.String US_ASCII;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "US-ASCII"

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.debugger.posix.elf.ELFFileParser this
         0: .line 33
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.jvm.hotspot.debugger.posix.elf.ELFFileParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/debugger/posix/elf/ELFFileParser;

  public static sun.jvm.hotspot.debugger.posix.elf.ELFFileParser getParser();
    descriptor: ()Lsun/jvm/hotspot/debugger/posix/elf/ELFFileParser;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 38
            getstatic sun.jvm.hotspot.debugger.posix.elf.ELFFileParser.elfParser:Lsun/jvm/hotspot/debugger/posix/elf/ELFFileParser;
            ifnonnull 2
         1: .line 39
            new sun.jvm.hotspot.debugger.posix.elf.ELFFileParser
            dup
            invokespecial sun.jvm.hotspot.debugger.posix.elf.ELFFileParser.<init>:()V
            putstatic sun.jvm.hotspot.debugger.posix.elf.ELFFileParser.elfParser:Lsun/jvm/hotspot/debugger/posix/elf/ELFFileParser;
         2: .line 41
      StackMap locals:
      StackMap stack:
            getstatic sun.jvm.hotspot.debugger.posix.elf.ELFFileParser.elfParser:Lsun/jvm/hotspot/debugger/posix/elf/ELFFileParser;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public sun.jvm.hotspot.debugger.posix.elf.ELFFile parse(java.lang.String);
    descriptor: (Ljava/lang/String;)Lsun/jvm/hotspot/debugger/posix/elf/ELFFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.debugger.posix.elf.ELFFileParser this
        start local 1 // java.lang.String filename
         0: .line 49
            new java.io.RandomAccessFile
            dup
            aload 1 /* filename */
            ldc "r"
            invokespecial java.io.RandomAccessFile.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 2 /* file */
        start local 2 // java.io.RandomAccessFile file
         1: .line 50
            aload 0 /* this */
            new sun.jvm.hotspot.debugger.RandomAccessFileDataSource
            dup
            aload 2 /* file */
            invokespecial sun.jvm.hotspot.debugger.RandomAccessFileDataSource.<init>:(Ljava/io/RandomAccessFile;)V
            invokevirtual sun.jvm.hotspot.debugger.posix.elf.ELFFileParser.parse:(Lsun/jvm/hotspot/debugger/DataSource;)Lsun/jvm/hotspot/debugger/posix/elf/ELFFile;
         2: areturn
        end local 2 // java.io.RandomAccessFile file
         3: .line 51
      StackMap locals:
      StackMap stack: java.io.FileNotFoundException
            astore 2 /* e */
        start local 2 // java.io.FileNotFoundException e
         4: .line 52
            new sun.jvm.hotspot.debugger.posix.elf.ELFException
            dup
            aload 2 /* e */
            invokespecial sun.jvm.hotspot.debugger.posix.elf.ELFException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.FileNotFoundException e
        end local 1 // java.lang.String filename
        end local 0 // sun.jvm.hotspot.debugger.posix.elf.ELFFileParser this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lsun/jvm/hotspot/debugger/posix/elf/ELFFileParser;
            0    5     1  filename  Ljava/lang/String;
            1    3     2      file  Ljava/io/RandomAccessFile;
            4    5     2         e  Ljava/io/FileNotFoundException;
      Exception table:
        from    to  target  type
           0     2       3  Class java.io.FileNotFoundException
    Exceptions:
      throws sun.jvm.hotspot.debugger.posix.elf.ELFException
    MethodParameters:
          Name  Flags
      filename  

  public sun.jvm.hotspot.debugger.posix.elf.ELFFile parse(sun.jvm.hotspot.debugger.DataSource);
    descriptor: (Lsun/jvm/hotspot/debugger/DataSource;)Lsun/jvm/hotspot/debugger/posix/elf/ELFFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.debugger.posix.elf.ELFFileParser this
        start local 1 // sun.jvm.hotspot.debugger.DataSource source
         0: .line 60
            new sun.jvm.hotspot.debugger.posix.elf.ELFFileParser$ELFFileImpl
            dup
            aload 0 /* this */
            aload 1 /* source */
            invokespecial sun.jvm.hotspot.debugger.posix.elf.ELFFileParser$ELFFileImpl.<init>:(Lsun/jvm/hotspot/debugger/posix/elf/ELFFileParser;Lsun/jvm/hotspot/debugger/DataSource;)V
            areturn
        end local 1 // sun.jvm.hotspot.debugger.DataSource source
        end local 0 // sun.jvm.hotspot.debugger.posix.elf.ELFFileParser this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/jvm/hotspot/debugger/posix/elf/ELFFileParser;
            0    1     1  source  Lsun/jvm/hotspot/debugger/DataSource;
    Exceptions:
      throws sun.jvm.hotspot.debugger.posix.elf.ELFException
    MethodParameters:
        Name  Flags
      source  

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 1036
            aload 0 /* args */
            arraylength
            iconst_1
            if_icmpeq 3
         1: .line 1037
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Usage: java ELFFileParser <elf file>"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 1038
            iconst_0
            invokestatic java.lang.System.exit:(I)V
         3: .line 1042
      StackMap locals:
      StackMap stack:
            invokestatic sun.jvm.hotspot.debugger.posix.elf.ELFFileParser.getParser:()Lsun/jvm/hotspot/debugger/posix/elf/ELFFileParser;
            aload 0 /* args */
            iconst_0
            aaload
            invokevirtual sun.jvm.hotspot.debugger.posix.elf.ELFFileParser.parse:(Ljava/lang/String;)Lsun/jvm/hotspot/debugger/posix/elf/ELFFile;
            astore 1 /* elfFile */
        start local 1 // sun.jvm.hotspot.debugger.posix.elf.ELFFile elfFile
         4: .line 1044
            aload 1 /* elfFile */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFFile.getHeader:()Lsun/jvm/hotspot/debugger/posix/elf/ELFHeader;
            astore 2 /* elfHeader */
        start local 2 // sun.jvm.hotspot.debugger.posix.elf.ELFHeader elfHeader
         5: .line 1045
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "ELF File: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* args */
            iconst_0
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 1047
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "ELF object size: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 1048
            aload 1 /* elfFile */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFFile.getObjectSize:()B
            ifne 8
            ldc "Invalid Object Size"
            goto 10
         8: .line 1049
      StackMap locals: java.lang.String[] sun.jvm.hotspot.debugger.posix.elf.ELFFile sun.jvm.hotspot.debugger.posix.elf.ELFHeader
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
            aload 1 /* elfFile */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFFile.getObjectSize:()B
            iconst_1
            if_icmpne 9
            ldc "32-bit"
            goto 10
      StackMap locals: java.lang.String[] sun.jvm.hotspot.debugger.posix.elf.ELFFile sun.jvm.hotspot.debugger.posix.elf.ELFHeader
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
         9: ldc "64-bit"
        10: .line 1048
      StackMap locals: java.lang.String[] sun.jvm.hotspot.debugger.posix.elf.ELFFile sun.jvm.hotspot.debugger.posix.elf.ELFHeader
      StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 1047
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        12: .line 1050
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "ELF data encoding: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 1051
            aload 1 /* elfFile */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFFile.getEncoding:()B
            ifne 14
            ldc "Invalid Data Encoding"
            goto 16
        14: .line 1052
      StackMap locals: java.lang.String[] sun.jvm.hotspot.debugger.posix.elf.ELFFile sun.jvm.hotspot.debugger.posix.elf.ELFHeader
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
            aload 1 /* elfFile */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFFile.getEncoding:()B
            iconst_1
            if_icmpne 15
            ldc "LSB"
            goto 16
      StackMap locals: java.lang.String[] sun.jvm.hotspot.debugger.posix.elf.ELFFile sun.jvm.hotspot.debugger.posix.elf.ELFHeader
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
        15: ldc "MSB"
        16: .line 1051
      StackMap locals: java.lang.String[] sun.jvm.hotspot.debugger.posix.elf.ELFFile sun.jvm.hotspot.debugger.posix.elf.ELFHeader
      StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 1050
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        18: .line 1054
            aload 2 /* elfHeader */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFHeader.getNumberOfSectionHeaders:()S
            istore 3 /* h */
        start local 3 // int h
        19: .line 1055
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "--> Start: reading "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* h */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " section headers."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        20: .line 1056
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        21: goto 44
        22: .line 1057
      StackMap locals: int int
      StackMap stack:
            aload 2 /* elfHeader */
            iload 4 /* i */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFHeader.getSectionHeader:(I)Lsun/jvm/hotspot/debugger/posix/elf/ELFSectionHeader;
            astore 5 /* sh */
        start local 5 // sun.jvm.hotspot.debugger.posix.elf.ELFSectionHeader sh
        23: .line 1058
            aload 5 /* sh */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFSectionHeader.getName:()Ljava/lang/String;
            astore 6 /* str */
        start local 6 // java.lang.String str
        24: .line 1059
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "----> Start: Section ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ") "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* str */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        25: .line 1061
            iconst_0
            istore 7 /* num */
        start local 7 // int num
        26: .line 1062
            aload 5 /* sh */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFSectionHeader.getNumberOfSymbols:()I
            dup
            istore 7 /* num */
            ifeq 34
        27: .line 1063
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "------> Start: reading "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* num */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " symbols."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        28: .line 1064
            iconst_0
            istore 8 /* j */
        start local 8 // int j
        29: goto 32
        30: .line 1065
      StackMap locals: java.lang.String[] sun.jvm.hotspot.debugger.posix.elf.ELFFile sun.jvm.hotspot.debugger.posix.elf.ELFHeader int int sun.jvm.hotspot.debugger.posix.elf.ELFSectionHeader java.lang.String int int
      StackMap stack:
            aload 5 /* sh */
            iload 8 /* j */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFSectionHeader.getELFSymbol:(I)Lsun/jvm/hotspot/debugger/posix/elf/ELFSymbol;
            pop
        31: .line 1064
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        32: iload 8 /* j */
            iload 7 /* num */
            if_icmplt 30
        end local 8 // int j
        33: .line 1071
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "<------ End: reading "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* num */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " symbols."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        34: .line 1074
      StackMap locals:
      StackMap stack:
            aload 5 /* sh */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFSectionHeader.getType:()I
            iconst_3
            if_icmpne 38
        35: .line 1075
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "------> Start: reading string table."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        36: .line 1076
            aload 5 /* sh */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFSectionHeader.getStringTable:()Lsun/jvm/hotspot/debugger/posix/elf/ELFStringTable;
            pop
        37: .line 1077
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "<------ End: reading string table."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        38: .line 1079
      StackMap locals:
      StackMap stack:
            aload 5 /* sh */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFSectionHeader.getType:()I
            iconst_5
            if_icmpne 42
        39: .line 1080
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "------> Start: reading hash table."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        40: .line 1081
            aload 5 /* sh */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFSectionHeader.getHashTable:()Lsun/jvm/hotspot/debugger/posix/elf/ELFHashTable;
            pop
        41: .line 1082
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "<------ End: reading hash table."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        42: .line 1084
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "<---- End: Section ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ") "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* str */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 7 // int num
        end local 6 // java.lang.String str
        end local 5 // sun.jvm.hotspot.debugger.posix.elf.ELFSectionHeader sh
        43: .line 1056
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        44: iload 4 /* i */
            aload 2 /* elfHeader */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFHeader.getNumberOfSectionHeaders:()S
            if_icmplt 22
        end local 4 // int i
        45: .line 1086
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "<-- End: reading "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* h */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " section headers."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        46: .line 1095
            aload 1 /* elfFile */
            invokeinterface sun.jvm.hotspot.debugger.posix.elf.ELFFile.close:()V
        47: .line 1096
            return
        end local 3 // int h
        end local 2 // sun.jvm.hotspot.debugger.posix.elf.ELFHeader elfHeader
        end local 1 // sun.jvm.hotspot.debugger.posix.elf.ELFFile elfFile
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   48     0       args  [Ljava/lang/String;
            4   48     1    elfFile  Lsun/jvm/hotspot/debugger/posix/elf/ELFFile;
            5   48     2  elfHeader  Lsun/jvm/hotspot/debugger/posix/elf/ELFHeader;
           19   48     3          h  I
           21   45     4          i  I
           23   43     5         sh  Lsun/jvm/hotspot/debugger/posix/elf/ELFSectionHeader;
           24   43     6        str  Ljava/lang/String;
           26   43     7        num  I
           29   33     8          j  I
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "ELFFileParser.java"
NestMembers:
  sun.jvm.hotspot.debugger.posix.elf.ELFFileParser$ELFFileImpl  sun.jvm.hotspot.debugger.posix.elf.ELFFileParser$ELFFileImpl$ELFHashTableImpl  sun.jvm.hotspot.debugger.posix.elf.ELFFileParser$ELFFileImpl$ELFHeaderImpl  sun.jvm.hotspot.debugger.posix.elf.ELFFileParser$ELFFileImpl$ELFHeaderImpl$1  sun.jvm.hotspot.debugger.posix.elf.ELFFileParser$ELFFileImpl$ELFSectionHeaderImpl  sun.jvm.hotspot.debugger.posix.elf.ELFFileParser$ELFFileImpl$ELFSectionHeaderImpl$1  sun.jvm.hotspot.debugger.posix.elf.ELFFileParser$ELFFileImpl$ELFSectionHeaderImpl$2  sun.jvm.hotspot.debugger.posix.elf.ELFFileParser$ELFFileImpl$ELFSectionHeaderImpl$3  sun.jvm.hotspot.debugger.posix.elf.ELFFileParser$ELFFileImpl$ELFStringTableImpl  sun.jvm.hotspot.debugger.posix.elf.ELFFileParser$ELFFileImpl$ELFSymbolImpl
InnerClasses:
  ELFFileImpl = sun.jvm.hotspot.debugger.posix.elf.ELFFileParser$ELFFileImpl of sun.jvm.hotspot.debugger.posix.elf.ELFFileParser