public class sun.jvm.hotspot.debugger.win32.coff.TestParser
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.jvm.hotspot.debugger.win32.coff.TestParser
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.jvm.hotspot.debugger.win32.coff.TestParser this
0: .line 27
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // sun.jvm.hotspot.debugger.win32.coff.TestParser this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/jvm/hotspot/debugger/win32/coff/TestParser;
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 29
aload 0 /* args */
arraylength
iconst_1
if_icmpeq 4
1: .line 30
getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "usage: java TestParser [file name]"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: .line 31
getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "File name may be an .exe, .dll or .obj"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: .line 32
iconst_1
invokestatic java.lang.System.exit:(I)V
4: .line 36
StackMap locals:
StackMap stack:
invokestatic sun.jvm.hotspot.debugger.win32.coff.COFFFileParser.getParser:()Lsun/jvm/hotspot/debugger/win32/coff/COFFFileParser;
aload 0 /* args */
iconst_0
aaload
invokevirtual sun.jvm.hotspot.debugger.win32.coff.COFFFileParser.parse:(Ljava/lang/String;)Lsun/jvm/hotspot/debugger/win32/coff/COFFFile;
astore 1 /* file */
start local 1 // sun.jvm.hotspot.debugger.win32.coff.COFFFile file
5: .line 37
aload 1 /* file */
invokeinterface sun.jvm.hotspot.debugger.win32.coff.COFFFile.isImage:()Z
ifeq 8
6: .line 38
getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "PE Image detected."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: .line 39
goto 9
8: .line 40
StackMap locals: sun.jvm.hotspot.debugger.win32.coff.COFFFile
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "PE Image NOT detected, assuming object file."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
9: .line 42
StackMap locals:
StackMap stack:
aload 1 /* file */
invokeinterface sun.jvm.hotspot.debugger.win32.coff.COFFFile.getHeader:()Lsun/jvm/hotspot/debugger/win32/coff/COFFHeader;
astore 2 /* header */
start local 2 // sun.jvm.hotspot.debugger.win32.coff.COFFHeader header
10: .line 43
aload 2 /* header */
invokeinterface sun.jvm.hotspot.debugger.win32.coff.COFFHeader.getNumberOfSections:()S
istore 3 /* numSections */
start local 3 // int numSections
11: .line 44
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
iload 3 /* numSections */
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " sections detected."
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
12: .line 45
iconst_1
istore 4 /* i */
start local 4 // int i
13: goto 17
14: .line 46
StackMap locals: sun.jvm.hotspot.debugger.win32.coff.COFFHeader int int
StackMap stack:
aload 2 /* header */
iload 4 /* i */
invokeinterface sun.jvm.hotspot.debugger.win32.coff.COFFHeader.getSectionHeader:(I)Lsun/jvm/hotspot/debugger/win32/coff/SectionHeader;
astore 5 /* secHeader */
start local 5 // sun.jvm.hotspot.debugger.win32.coff.SectionHeader secHeader
15: .line 47
getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 5 /* secHeader */
invokeinterface sun.jvm.hotspot.debugger.win32.coff.SectionHeader.getName:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 5 // sun.jvm.hotspot.debugger.win32.coff.SectionHeader secHeader
16: .line 45
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
17: iload 4 /* i */
iload 3 /* numSections */
if_icmple 14
end local 4 // int i
18: .line 66
aload 2 /* header */
invokeinterface sun.jvm.hotspot.debugger.win32.coff.COFFHeader.getOptionalHeader:()Lsun/jvm/hotspot/debugger/win32/coff/OptionalHeader;
astore 4 /* optHdr */
start local 4 // sun.jvm.hotspot.debugger.win32.coff.OptionalHeader optHdr
19: .line 67
aload 4 /* optHdr */
invokeinterface sun.jvm.hotspot.debugger.win32.coff.OptionalHeader.getDataDirectories:()Lsun/jvm/hotspot/debugger/win32/coff/OptionalHeaderDataDirectories;
astore 5 /* ddirs */
start local 5 // sun.jvm.hotspot.debugger.win32.coff.OptionalHeaderDataDirectories ddirs
20: .line 68
aload 5 /* ddirs */
invokeinterface sun.jvm.hotspot.debugger.win32.coff.OptionalHeaderDataDirectories.getExportDirectoryTable:()Lsun/jvm/hotspot/debugger/win32/coff/ExportDirectoryTable;
astore 6 /* exports */
start local 6 // sun.jvm.hotspot.debugger.win32.coff.ExportDirectoryTable exports
21: .line 69
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Export flags (should be 0): "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6 /* exports */
invokeinterface sun.jvm.hotspot.debugger.win32.coff.ExportDirectoryTable.getExportFlags:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
22: .line 70
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "DLL name (from export directory table): "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
23: .line 71
aload 6 /* exports */
invokeinterface sun.jvm.hotspot.debugger.win32.coff.ExportDirectoryTable.getDLLName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
24: .line 70
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
25: .line 72
aload 6 /* exports */
invokeinterface sun.jvm.hotspot.debugger.win32.coff.ExportDirectoryTable.getNumberOfNamePointers:()I
istore 7 /* numSymbols */
start local 7 // int numSymbols
26: .line 73
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
iload 7 /* numSymbols */
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " exported symbols detected:"
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
27: .line 74
iconst_0
istore 8 /* i */
start local 8 // int i
28: goto 31
29: .line 75
StackMap locals: java.lang.String[] sun.jvm.hotspot.debugger.win32.coff.COFFFile sun.jvm.hotspot.debugger.win32.coff.COFFHeader int sun.jvm.hotspot.debugger.win32.coff.OptionalHeader sun.jvm.hotspot.debugger.win32.coff.OptionalHeaderDataDirectories sun.jvm.hotspot.debugger.win32.coff.ExportDirectoryTable int int
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6 /* exports */
iload 8 /* i */
invokeinterface sun.jvm.hotspot.debugger.win32.coff.ExportDirectoryTable.getExportName:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
30: .line 74
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
31: iload 8 /* i */
iload 7 /* numSymbols */
if_icmplt 29
end local 8 // int i
end local 7 // int numSymbols
end local 6 // sun.jvm.hotspot.debugger.win32.coff.ExportDirectoryTable exports
end local 5 // sun.jvm.hotspot.debugger.win32.coff.OptionalHeaderDataDirectories ddirs
end local 4 // sun.jvm.hotspot.debugger.win32.coff.OptionalHeader optHdr
end local 3 // int numSections
end local 2 // sun.jvm.hotspot.debugger.win32.coff.COFFHeader header
end local 1 // sun.jvm.hotspot.debugger.win32.coff.COFFFile file
32: .line 77
goto 35
StackMap locals: java.lang.String[]
StackMap stack: java.lang.Exception
33: astore 1 /* e */
start local 1 // java.lang.Exception e
34: .line 78
aload 1 /* e */
invokevirtual java.lang.Exception.printStackTrace:()V
end local 1 // java.lang.Exception e
35: .line 80
StackMap locals:
StackMap stack:
return
end local 0 // java.lang.String[] args
LocalVariableTable:
Start End Slot Name Signature
0 36 0 args [Ljava/lang/String;
5 32 1 file Lsun/jvm/hotspot/debugger/win32/coff/COFFFile;
10 32 2 header Lsun/jvm/hotspot/debugger/win32/coff/COFFHeader;
11 32 3 numSections I
13 18 4 i I
15 16 5 secHeader Lsun/jvm/hotspot/debugger/win32/coff/SectionHeader;
19 32 4 optHdr Lsun/jvm/hotspot/debugger/win32/coff/OptionalHeader;
20 32 5 ddirs Lsun/jvm/hotspot/debugger/win32/coff/OptionalHeaderDataDirectories;
21 32 6 exports Lsun/jvm/hotspot/debugger/win32/coff/ExportDirectoryTable;
26 32 7 numSymbols I
28 32 8 i I
34 35 1 e Ljava/lang/Exception;
Exception table:
from to target type
4 32 33 Class java.lang.Exception
MethodParameters:
Name Flags
args
}
SourceFile: "TestParser.java"