final class com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder
super_class: java.lang.Object
{
private final com.oracle.objectfile.pecoff.cv.CVDebugInfo cvDebugInfo;
descriptor: Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.objectfile.pecoff.cv.CVSymbolSubsection cvSymbolSubsection;
descriptor: Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubsection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.oracle.objectfile.pecoff.cv.CVLineRecordBuilder lineRecordBuilder;
descriptor: Lcom/oracle/objectfile/pecoff/cv/CVLineRecordBuilder;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.compiler.debug.DebugContext debugContext;
descriptor: Lorg/graalvm/compiler/debug/DebugContext;
flags: (0x0002) ACC_PRIVATE
private boolean noMainFound;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
void <init>(com.oracle.objectfile.pecoff.cv.CVDebugInfo);
descriptor: (Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.debugContext:Lorg/graalvm/compiler/debug/DebugContext;
2: aload 0
iconst_1
putfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.noMainFound:Z
3: aload 0
new com.oracle.objectfile.pecoff.cv.CVSymbolSubsection
dup
aload 1
invokespecial com.oracle.objectfile.pecoff.cv.CVSymbolSubsection.<init>:(Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;)V
putfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.cvSymbolSubsection:Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubsection;
4: aload 0
aload 1
putfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.cvDebugInfo:Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubsectionBuilder;
0 6 1 cvDebugInfo Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;
MethodParameters:
Name Flags
cvDebugInfo
void build(org.graalvm.compiler.debug.DebugContext);
descriptor: (Lorg/graalvm/compiler/debug/DebugContext;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.debugContext:Lorg/graalvm/compiler/debug/DebugContext;
1: aload 0
new com.oracle.objectfile.pecoff.cv.CVLineRecordBuilder
dup
aload 0
getfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.debugContext:Lorg/graalvm/compiler/debug/DebugContext;
aload 0
getfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.cvDebugInfo:Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;
invokespecial com.oracle.objectfile.pecoff.cv.CVLineRecordBuilder.<init>:(Lorg/graalvm/compiler/debug/DebugContext;Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;)V
putfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.lineRecordBuilder:Lcom/oracle/objectfile/pecoff/cv/CVLineRecordBuilder;
2: aload 0
getfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.cvDebugInfo:Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;
invokevirtual com.oracle.objectfile.pecoff.cv.CVDebugInfo.getPrimaryClasses:()Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder org.graalvm.compiler.debug.DebugContext top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.objectfile.debugentry.ClassEntry
astore 2
start local 2 4: aload 0
aload 2
invokevirtual com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.build:(Lcom/oracle/objectfile/debugentry/ClassEntry;)V
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: aload 0
getfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.cvDebugInfo:Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;
invokevirtual com.oracle.objectfile.pecoff.cv.CVDebugInfo.getCVSymbolSection:()Lcom/oracle/objectfile/pecoff/cv/CVSymbolSectionImpl;
aload 0
getfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.cvSymbolSubsection:Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubsection;
invokevirtual com.oracle.objectfile.pecoff.cv.CVSymbolSectionImpl.addRecord:(Lcom/oracle/objectfile/pecoff/cv/CVSymbolRecord;)V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubsectionBuilder;
0 8 1 theDebugContext Lorg/graalvm/compiler/debug/DebugContext;
4 5 2 classEntry Lcom/oracle/objectfile/debugentry/ClassEntry;
MethodParameters:
Name Flags
theDebugContext
private void build(com.oracle.objectfile.debugentry.ClassEntry);
descriptor: (Lcom/oracle/objectfile/debugentry/ClassEntry;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.objectfile.debugentry.ClassEntry.getPrimaryEntries:()Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder com.oracle.objectfile.debugentry.ClassEntry top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.objectfile.debugentry.PrimaryEntry
astore 2
start local 2 2: aload 0
aload 2
invokevirtual com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.build:(Lcom/oracle/objectfile/debugentry/PrimaryEntry;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubsectionBuilder;
0 5 1 classEntry Lcom/oracle/objectfile/debugentry/ClassEntry;
2 3 2 primaryEntry Lcom/oracle/objectfile/debugentry/PrimaryEntry;
MethodParameters:
Name Flags
classEntry
private void build(com.oracle.objectfile.debugentry.PrimaryEntry);
descriptor: (Lcom/oracle/objectfile/debugentry/PrimaryEntry;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=15, locals=12, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.objectfile.debugentry.PrimaryEntry.getPrimary:()Lcom/oracle/objectfile/debugentry/Range;
astore 2
start local 2 1: aload 0
aload 2
invokevirtual com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.getDebuggerName:(Lcom/oracle/objectfile/debugentry/Range;)Ljava/lang/String;
astore 3
start local 3 2: aload 2
invokevirtual com.oracle.objectfile.debugentry.Range.getSymbolName:()Ljava/lang/String;
astore 4
start local 4 3: aload 0
aload 1
invokevirtual com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.addTypeRecords:(Lcom/oracle/objectfile/debugentry/PrimaryEntry;)I
istore 5
start local 5 4: iconst_0
istore 6
start local 6 5: new com.oracle.objectfile.pecoff.cv.CVSymbolSubrecord$CVSymbolGProc32Record
dup
aload 0
getfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.cvDebugInfo:Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;
aload 4
aload 3
iconst_0
iconst_0
iconst_0
aload 2
invokevirtual com.oracle.objectfile.debugentry.Range.getHi:()I
aload 2
invokevirtual com.oracle.objectfile.debugentry.Range.getLo:()I
isub
iconst_0
6: iconst_0
iload 5
aload 2
invokevirtual com.oracle.objectfile.debugentry.Range.getLo:()I
iconst_0
iload 6
7: invokespecial com.oracle.objectfile.pecoff.cv.CVSymbolSubrecord$CVSymbolGProc32Record.<init>:(Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;Ljava/lang/String;Ljava/lang/String;IIIIIIIISB)V
astore 7
start local 7 8: aload 0
aload 7
invokevirtual com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.addToSymbolSubsection:(Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubrecord;)V
9: sipush 512
istore 8
start local 8 10: sipush 16384
istore 9
start local 9 11: ldc 65536
istore 10
start local 10 12: iload 8
iload 9
iadd
iload 10
iadd
istore 11
start local 11 13: aload 0
new com.oracle.objectfile.pecoff.cv.CVSymbolSubrecord$CVSymbolFrameProcRecord
dup
aload 0
getfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.cvDebugInfo:Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;
aload 1
invokevirtual com.oracle.objectfile.debugentry.PrimaryEntry.getFrameSize:()I
iload 11
invokespecial com.oracle.objectfile.pecoff.cv.CVSymbolSubrecord$CVSymbolFrameProcRecord.<init>:(Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;II)V
invokevirtual com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.addToSymbolSubsection:(Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubrecord;)V
14: aload 0
new com.oracle.objectfile.pecoff.cv.CVSymbolSubrecord$CVSymbolEndRecord
dup
aload 0
getfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.cvDebugInfo:Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;
invokespecial com.oracle.objectfile.pecoff.cv.CVSymbolSubrecord$CVSymbolEndRecord.<init>:(Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;)V
invokevirtual com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.addToSymbolSubsection:(Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubrecord;)V
15: aload 0
aload 1
invokevirtual com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.addLineNumberRecords:(Lcom/oracle/objectfile/debugentry/PrimaryEntry;)V
16: return
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubsectionBuilder;
0 17 1 primaryEntry Lcom/oracle/objectfile/debugentry/PrimaryEntry;
1 17 2 primaryRange Lcom/oracle/objectfile/debugentry/Range;
2 17 3 debuggerName Ljava/lang/String;
3 17 4 externalName Ljava/lang/String;
4 17 5 functionTypeIndex I
5 17 6 funcFlags B
8 17 7 proc32 Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubrecord$CVSymbolGProc32Record;
10 17 8 asynceh I
11 17 9 localBP I
12 17 10 paramBP I
13 17 11 frameFlags I
MethodParameters:
Name Flags
primaryEntry
private java.lang.String getDebuggerName(com.oracle.objectfile.debugentry.Range);
descriptor: (Lcom/oracle/objectfile/debugentry/Range;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.noMainFound:Z
ifeq 4
aload 1
invokevirtual com.oracle.objectfile.debugentry.Range.getMethodName:()Ljava/lang/String;
ldc "main"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
1: aload 0
iconst_0
putfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.noMainFound:Z
2: aload 1
invokevirtual com.oracle.objectfile.debugentry.Range.getClassAndMethodName:()Ljava/lang/String;
astore 2
start local 2 3: goto 5
end local 2 4: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.oracle.objectfile.debugentry.Range.getSymbolName:()Ljava/lang/String;
astore 2
start local 2 5: StackMap locals: java.lang.String
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubsectionBuilder;
0 6 1 range Lcom/oracle/objectfile/debugentry/Range;
3 4 2 methodName Ljava/lang/String;
5 6 2 methodName Ljava/lang/String;
MethodParameters:
Name Flags
range
private void addLineNumberRecords(com.oracle.objectfile.debugentry.PrimaryEntry);
descriptor: (Lcom/oracle/objectfile/debugentry/PrimaryEntry;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.lineRecordBuilder:Lcom/oracle/objectfile/pecoff/cv/CVLineRecordBuilder;
aload 1
invokevirtual com.oracle.objectfile.pecoff.cv.CVLineRecordBuilder.build:(Lcom/oracle/objectfile/debugentry/PrimaryEntry;)Lcom/oracle/objectfile/pecoff/cv/CVLineRecord;
astore 2
start local 2 1: aload 2
invokevirtual com.oracle.objectfile.pecoff.cv.CVLineRecord.isEmpty:()Z
ifne 3
2: aload 0
getfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.cvDebugInfo:Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;
invokevirtual com.oracle.objectfile.pecoff.cv.CVDebugInfo.getCVSymbolSection:()Lcom/oracle/objectfile/pecoff/cv/CVSymbolSectionImpl;
aload 2
invokevirtual com.oracle.objectfile.pecoff.cv.CVSymbolSectionImpl.addRecord:(Lcom/oracle/objectfile/pecoff/cv/CVSymbolRecord;)V
3: StackMap locals: com.oracle.objectfile.pecoff.cv.CVLineRecord
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubsectionBuilder;
0 4 1 primaryEntry Lcom/oracle/objectfile/debugentry/PrimaryEntry;
1 4 2 record Lcom/oracle/objectfile/pecoff/cv/CVLineRecord;
MethodParameters:
Name Flags
primaryEntry
private void addToSymbolSubsection(com.oracle.objectfile.pecoff.cv.CVSymbolSubrecord);
descriptor: (Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubrecord;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.cvSymbolSubsection:Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubsection;
aload 1
invokevirtual com.oracle.objectfile.pecoff.cv.CVSymbolSubsection.addRecord:(Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubrecord;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubsectionBuilder;
0 2 1 record Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubrecord;
MethodParameters:
Name Flags
record
private int addTypeRecords(com.oracle.objectfile.debugentry.PrimaryEntry);
descriptor: (Lcom/oracle/objectfile/debugentry/PrimaryEntry;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
new com.oracle.objectfile.pecoff.cv.CVTypeRecord$CVTypeArglistRecord
dup
invokespecial com.oracle.objectfile.pecoff.cv.CVTypeRecord$CVTypeArglistRecord.<init>:()V
iconst_0
invokevirtual com.oracle.objectfile.pecoff.cv.CVTypeRecord$CVTypeArglistRecord.add:(I)Lcom/oracle/objectfile/pecoff/cv/CVTypeRecord$CVTypeArglistRecord;
invokevirtual com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.addTypeRecord:(Lcom/oracle/objectfile/pecoff/cv/CVTypeRecord;)Lcom/oracle/objectfile/pecoff/cv/CVTypeRecord;
checkcast com.oracle.objectfile.pecoff.cv.CVTypeRecord$CVTypeArglistRecord
astore 2
start local 2 1: aload 0
new com.oracle.objectfile.pecoff.cv.CVTypeRecord$CVTypeProcedureRecord
dup
invokespecial com.oracle.objectfile.pecoff.cv.CVTypeRecord$CVTypeProcedureRecord.<init>:()V
iconst_3
invokevirtual com.oracle.objectfile.pecoff.cv.CVTypeRecord$CVTypeProcedureRecord.returnType:(I)Lcom/oracle/objectfile/pecoff/cv/CVTypeRecord$CVTypeProcedureRecord;
aload 2
invokevirtual com.oracle.objectfile.pecoff.cv.CVTypeRecord$CVTypeProcedureRecord.argList:(Lcom/oracle/objectfile/pecoff/cv/CVTypeRecord$CVTypeArglistRecord;)Lcom/oracle/objectfile/pecoff/cv/CVTypeRecord$CVTypeProcedureRecord;
invokevirtual com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.addTypeRecord:(Lcom/oracle/objectfile/pecoff/cv/CVTypeRecord;)Lcom/oracle/objectfile/pecoff/cv/CVTypeRecord;
astore 3
start local 3 2: aload 3
invokevirtual com.oracle.objectfile.pecoff.cv.CVTypeRecord.getSequenceNumber:()I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubsectionBuilder;
0 3 1 entry Lcom/oracle/objectfile/debugentry/PrimaryEntry;
1 3 2 argListType Lcom/oracle/objectfile/pecoff/cv/CVTypeRecord$CVTypeArglistRecord;
2 3 3 funcType Lcom/oracle/objectfile/pecoff/cv/CVTypeRecord;
MethodParameters:
Name Flags
entry
private <T extends com.oracle.objectfile.pecoff.cv.CVTypeRecord> T addTypeRecord();
descriptor: (Lcom/oracle/objectfile/pecoff/cv/CVTypeRecord;)Lcom/oracle/objectfile/pecoff/cv/CVTypeRecord;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.objectfile.pecoff.cv.CVSymbolSubsectionBuilder.cvDebugInfo:Lcom/oracle/objectfile/pecoff/cv/CVDebugInfo;
invokevirtual com.oracle.objectfile.pecoff.cv.CVDebugInfo.getCVTypeSection:()Lcom/oracle/objectfile/pecoff/cv/CVTypeSectionImpl;
aload 1
invokevirtual com.oracle.objectfile.pecoff.cv.CVTypeSectionImpl.addOrReference:(Lcom/oracle/objectfile/pecoff/cv/CVTypeRecord;)Lcom/oracle/objectfile/pecoff/cv/CVTypeRecord;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/pecoff/cv/CVSymbolSubsectionBuilder;
0 1 1 record TT;
Signature: <T:Lcom/oracle/objectfile/pecoff/cv/CVTypeRecord;>(TT;)TT;
MethodParameters:
Name Flags
record
}
SourceFile: "CVSymbolSubsectionBuilder.java"
InnerClasses:
public CVSymbolEndRecord = com.oracle.objectfile.pecoff.cv.CVSymbolSubrecord$CVSymbolEndRecord of com.oracle.objectfile.pecoff.cv.CVSymbolSubrecord
public final CVSymbolFrameProcRecord = com.oracle.objectfile.pecoff.cv.CVSymbolSubrecord$CVSymbolFrameProcRecord of com.oracle.objectfile.pecoff.cv.CVSymbolSubrecord
public CVSymbolGProc32Record = com.oracle.objectfile.pecoff.cv.CVSymbolSubrecord$CVSymbolGProc32Record of com.oracle.objectfile.pecoff.cv.CVSymbolSubrecord
final CVTypeArglistRecord = com.oracle.objectfile.pecoff.cv.CVTypeRecord$CVTypeArglistRecord of com.oracle.objectfile.pecoff.cv.CVTypeRecord
final CVTypeProcedureRecord = com.oracle.objectfile.pecoff.cv.CVTypeRecord$CVTypeProcedureRecord of com.oracle.objectfile.pecoff.cv.CVTypeRecord