You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
463 lines
16 KiB
463 lines
16 KiB
# // Compile with clang-cl -m32 /Z7 /GS- /c t.obj pdb-framedata.cpp
|
|
#
|
|
# int func(int x, int y) {
|
|
# return x + y;
|
|
# }
|
|
#
|
|
# int main(int argc, char **argv) {
|
|
# return func(argc, argc+1);
|
|
# }
|
|
|
|
# RUN: yaml2obj %s -o %t.obj
|
|
# RUN: lld-link %t.obj -debug -entry:main -nodefaultlib -debug -out:%t.exe -pdb:%t.pdb
|
|
# RUN: llvm-pdbutil dump -fpo %t.pdb | FileCheck %s
|
|
|
|
# CHECK: New FPO Data
|
|
# CHECK-NEXT: ============================================================
|
|
# CHECK-NEXT: RVA | Code | Locals | Params | Stack | Prolog | Saved Regs | Has SEH | Has C++EH | Start | Program
|
|
# CHECK-NEXT: 00001000 | 31 | 0 | 8 | 0 | 6 | 0 | false | false | false | $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =
|
|
# CHECK-NEXT: 00001001 | 30 | 0 | 8 | 0 | 5 | 4 | false | false | false | $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
|
|
# CHECK-NEXT: 00001003 | 28 | 0 | 8 | 0 | 3 | 4 | false | false | false | $T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
|
|
# CHECK-NEXT: 00001020 | 53 | 0 | 8 | 0 | 7 | 0 | false | false | false | $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =
|
|
# CHECK-NEXT: 00001021 | 52 | 0 | 8 | 0 | 6 | 4 | false | false | false | $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
|
|
# CHECK-NEXT: 00001023 | 50 | 0 | 8 | 0 | 4 | 4 | false | false | false | $T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
|
|
# CHECK-NEXT: 00001024 | 49 | 0 | 8 | 0 | 3 | 8 | false | false | false | $T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $esi $T0 8 - ^ =
|
|
|
|
|
|
--- !COFF
|
|
header:
|
|
Machine: IMAGE_FILE_MACHINE_I386
|
|
Characteristics: [ ]
|
|
sections:
|
|
- Name: .text
|
|
Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
|
|
Alignment: 16
|
|
SectionData: 5589E583EC088B450C8B4D088B550803550C8945FC89D0894DF883C4085DC3905589E55683EC148B450C8B4D08C745F8000000008B550883C2018B7508893424895424048945F4894DF0E80000000083C4145E5DC3
|
|
Relocations:
|
|
- VirtualAddress: 75
|
|
SymbolName: '?func@@YAHHH@Z'
|
|
Type: IMAGE_REL_I386_REL32
|
|
- Name: .data
|
|
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
|
|
Alignment: 4
|
|
SectionData: ''
|
|
- Name: .bss
|
|
Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
|
|
Alignment: 4
|
|
SectionData: ''
|
|
- Name: .drectve
|
|
Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]
|
|
Alignment: 1
|
|
SectionData: 202F44454641554C544C49423A6C6962636D742E6C6962202F44454641554C544C49423A6F6C646E616D65732E6C6962
|
|
- Name: '.debug$S'
|
|
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
|
|
Alignment: 4
|
|
Subsections:
|
|
- !Symbols
|
|
Records:
|
|
- Kind: S_COMPILE3
|
|
Compile3Sym:
|
|
Flags: [ ]
|
|
Machine: Pentium3
|
|
FrontendMajor: 8
|
|
FrontendMinor: 0
|
|
FrontendBuild: 0
|
|
FrontendQFE: 0
|
|
BackendMajor: 8000
|
|
BackendMinor: 0
|
|
BackendBuild: 0
|
|
BackendQFE: 0
|
|
Version: 'clang version 8.0.0 '
|
|
- !FrameData
|
|
Frames:
|
|
- CodeSize: 31
|
|
FrameFunc: '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = '
|
|
LocalSize: 0
|
|
MaxStackSize: 0
|
|
ParamsSize: 8
|
|
PrologSize: 6
|
|
RvaStart: 0
|
|
SavedRegsSize: 0
|
|
- CodeSize: 30
|
|
FrameFunc: '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '
|
|
LocalSize: 0
|
|
MaxStackSize: 0
|
|
ParamsSize: 8
|
|
PrologSize: 5
|
|
RvaStart: 1
|
|
SavedRegsSize: 4
|
|
- CodeSize: 28
|
|
FrameFunc: '$T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '
|
|
LocalSize: 0
|
|
MaxStackSize: 0
|
|
ParamsSize: 8
|
|
PrologSize: 3
|
|
RvaStart: 3
|
|
SavedRegsSize: 4
|
|
- !Symbols
|
|
Records:
|
|
- Kind: S_GPROC32_ID
|
|
ProcSym:
|
|
CodeSize: 31
|
|
DbgStart: 0
|
|
DbgEnd: 0
|
|
FunctionType: 4098
|
|
Flags: [ ]
|
|
DisplayName: func
|
|
- Kind: S_LOCAL
|
|
LocalSym:
|
|
Type: 116
|
|
Flags: [ IsParameter ]
|
|
VarName: x
|
|
- Kind: S_DEFRANGE_REGISTER_REL
|
|
DefRangeRegisterRelSym:
|
|
Register: 22
|
|
Flags: 0
|
|
BasePointerOffset: 8
|
|
Range:
|
|
OffsetStart: 12
|
|
ISectStart: 0
|
|
Range: 19
|
|
Gaps:
|
|
- Kind: S_LOCAL
|
|
LocalSym:
|
|
Type: 116
|
|
Flags: [ IsParameter ]
|
|
VarName: y
|
|
- Kind: S_DEFRANGE_REGISTER_REL
|
|
DefRangeRegisterRelSym:
|
|
Register: 22
|
|
Flags: 0
|
|
BasePointerOffset: 12
|
|
Range:
|
|
OffsetStart: 12
|
|
ISectStart: 0
|
|
Range: 19
|
|
Gaps:
|
|
- Kind: S_PROC_ID_END
|
|
ScopeEndSym:
|
|
- !Lines
|
|
CodeSize: 31
|
|
Flags: [ ]
|
|
RelocOffset: 0
|
|
RelocSegment: 0
|
|
Blocks:
|
|
- FileName: 'D:\src\llvmbuild\cl\Debug\x64\pdb-framedata.cpp'
|
|
Lines:
|
|
- Offset: 0
|
|
LineStart: 3
|
|
IsStatement: false
|
|
EndDelta: 0
|
|
- Offset: 12
|
|
LineStart: 4
|
|
IsStatement: false
|
|
EndDelta: 0
|
|
Columns:
|
|
- !FrameData
|
|
Frames:
|
|
- CodeSize: 53
|
|
FrameFunc: '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = '
|
|
LocalSize: 0
|
|
MaxStackSize: 0
|
|
ParamsSize: 8
|
|
PrologSize: 7
|
|
RvaStart: 0
|
|
SavedRegsSize: 0
|
|
- CodeSize: 52
|
|
FrameFunc: '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '
|
|
LocalSize: 0
|
|
MaxStackSize: 0
|
|
ParamsSize: 8
|
|
PrologSize: 6
|
|
RvaStart: 1
|
|
SavedRegsSize: 4
|
|
- CodeSize: 50
|
|
FrameFunc: '$T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '
|
|
LocalSize: 0
|
|
MaxStackSize: 0
|
|
ParamsSize: 8
|
|
PrologSize: 4
|
|
RvaStart: 3
|
|
SavedRegsSize: 4
|
|
- CodeSize: 49
|
|
FrameFunc: '$T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $esi $T0 8 - ^ = '
|
|
LocalSize: 0
|
|
MaxStackSize: 0
|
|
ParamsSize: 8
|
|
PrologSize: 3
|
|
RvaStart: 4
|
|
SavedRegsSize: 8
|
|
- !Symbols
|
|
Records:
|
|
- Kind: S_GPROC32_ID
|
|
ProcSym:
|
|
CodeSize: 53
|
|
DbgStart: 0
|
|
DbgEnd: 0
|
|
FunctionType: 4102
|
|
Flags: [ ]
|
|
DisplayName: main
|
|
- Kind: S_LOCAL
|
|
LocalSym:
|
|
Type: 116
|
|
Flags: [ IsParameter ]
|
|
VarName: argc
|
|
- Kind: S_DEFRANGE_REGISTER_REL
|
|
DefRangeRegisterRelSym:
|
|
Register: 22
|
|
Flags: 0
|
|
BasePointerOffset: 8
|
|
Range:
|
|
OffsetStart: 52
|
|
ISectStart: 0
|
|
Range: 33
|
|
Gaps:
|
|
- Kind: S_LOCAL
|
|
LocalSym:
|
|
Type: 4099
|
|
Flags: [ IsParameter ]
|
|
VarName: argv
|
|
- Kind: S_DEFRANGE_REGISTER_REL
|
|
DefRangeRegisterRelSym:
|
|
Register: 22
|
|
Flags: 0
|
|
BasePointerOffset: 12
|
|
Range:
|
|
OffsetStart: 52
|
|
ISectStart: 0
|
|
Range: 33
|
|
Gaps:
|
|
- Kind: S_PROC_ID_END
|
|
ScopeEndSym:
|
|
- !Lines
|
|
CodeSize: 53
|
|
Flags: [ ]
|
|
RelocOffset: 0
|
|
RelocSegment: 0
|
|
Blocks:
|
|
- FileName: 'D:\src\llvmbuild\cl\Debug\x64\pdb-framedata.cpp'
|
|
Lines:
|
|
- Offset: 0
|
|
LineStart: 7
|
|
IsStatement: false
|
|
EndDelta: 0
|
|
- Offset: 20
|
|
LineStart: 8
|
|
IsStatement: false
|
|
EndDelta: 0
|
|
Columns:
|
|
- !FileChecksums
|
|
Checksums:
|
|
- FileName: 'D:\src\llvmbuild\cl\Debug\x64\pdb-framedata.cpp'
|
|
Kind: MD5
|
|
Checksum: A611B73E19B77B02646FAAF7CAEB025D
|
|
- !StringTable
|
|
Strings:
|
|
- 'D:\src\llvmbuild\cl\Debug\x64\pdb-framedata.cpp'
|
|
- '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = '
|
|
- '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '
|
|
- '$T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '
|
|
- '$T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $esi $T0 8 - ^ = '
|
|
- ''
|
|
Relocations:
|
|
- VirtualAddress: 68
|
|
SymbolName: '?func@@YAHHH@Z'
|
|
Type: IMAGE_REL_I386_DIR32NB
|
|
- VirtualAddress: 208
|
|
SymbolName: '?func@@YAHHH@Z'
|
|
Type: IMAGE_REL_I386_SECREL
|
|
- VirtualAddress: 212
|
|
SymbolName: '?func@@YAHHH@Z'
|
|
Type: IMAGE_REL_I386_SECTION
|
|
- VirtualAddress: 244
|
|
SymbolName: .text
|
|
Type: IMAGE_REL_I386_SECREL
|
|
- VirtualAddress: 248
|
|
SymbolName: .text
|
|
Type: IMAGE_REL_I386_SECTION
|
|
- VirtualAddress: 276
|
|
SymbolName: .text
|
|
Type: IMAGE_REL_I386_SECREL
|
|
- VirtualAddress: 280
|
|
SymbolName: .text
|
|
Type: IMAGE_REL_I386_SECTION
|
|
- VirtualAddress: 296
|
|
SymbolName: '?func@@YAHHH@Z'
|
|
Type: IMAGE_REL_I386_SECREL
|
|
- VirtualAddress: 300
|
|
SymbolName: '?func@@YAHHH@Z'
|
|
Type: IMAGE_REL_I386_SECTION
|
|
- VirtualAddress: 344
|
|
SymbolName: _main
|
|
Type: IMAGE_REL_I386_DIR32NB
|
|
- VirtualAddress: 516
|
|
SymbolName: _main
|
|
Type: IMAGE_REL_I386_SECREL
|
|
- VirtualAddress: 520
|
|
SymbolName: _main
|
|
Type: IMAGE_REL_I386_SECTION
|
|
- VirtualAddress: 555
|
|
SymbolName: .text
|
|
Type: IMAGE_REL_I386_SECREL
|
|
- VirtualAddress: 559
|
|
SymbolName: .text
|
|
Type: IMAGE_REL_I386_SECTION
|
|
- VirtualAddress: 590
|
|
SymbolName: .text
|
|
Type: IMAGE_REL_I386_SECREL
|
|
- VirtualAddress: 594
|
|
SymbolName: .text
|
|
Type: IMAGE_REL_I386_SECTION
|
|
- VirtualAddress: 612
|
|
SymbolName: _main
|
|
Type: IMAGE_REL_I386_SECREL
|
|
- VirtualAddress: 616
|
|
SymbolName: _main
|
|
Type: IMAGE_REL_I386_SECTION
|
|
- Name: '.debug$T'
|
|
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
|
|
Alignment: 4
|
|
Types:
|
|
- Kind: LF_ARGLIST
|
|
ArgList:
|
|
ArgIndices: [ 116, 116 ]
|
|
- Kind: LF_PROCEDURE
|
|
Procedure:
|
|
ReturnType: 116
|
|
CallConv: NearC
|
|
Options: [ None ]
|
|
ParameterCount: 2
|
|
ArgumentList: 4096
|
|
- Kind: LF_FUNC_ID
|
|
FuncId:
|
|
ParentScope: 0
|
|
FunctionType: 4097
|
|
Name: func
|
|
- Kind: LF_POINTER
|
|
Pointer:
|
|
ReferentType: 1136
|
|
Attrs: 32778
|
|
- Kind: LF_ARGLIST
|
|
ArgList:
|
|
ArgIndices: [ 116, 4099 ]
|
|
- Kind: LF_PROCEDURE
|
|
Procedure:
|
|
ReturnType: 116
|
|
CallConv: NearC
|
|
Options: [ None ]
|
|
ParameterCount: 2
|
|
ArgumentList: 4100
|
|
- Kind: LF_FUNC_ID
|
|
FuncId:
|
|
ParentScope: 0
|
|
FunctionType: 4101
|
|
Name: main
|
|
- Name: .llvm_addrsig
|
|
Characteristics: [ IMAGE_SCN_LNK_REMOVE ]
|
|
Alignment: 1
|
|
SectionData: 0F
|
|
symbols:
|
|
- Name: .text
|
|
Value: 0
|
|
SectionNumber: 1
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
SectionDefinition:
|
|
Length: 85
|
|
NumberOfRelocations: 1
|
|
NumberOfLinenumbers: 0
|
|
CheckSum: 1989857796
|
|
Number: 1
|
|
- Name: .data
|
|
Value: 0
|
|
SectionNumber: 2
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
SectionDefinition:
|
|
Length: 0
|
|
NumberOfRelocations: 0
|
|
NumberOfLinenumbers: 0
|
|
CheckSum: 0
|
|
Number: 2
|
|
- Name: .bss
|
|
Value: 0
|
|
SectionNumber: 3
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
SectionDefinition:
|
|
Length: 0
|
|
NumberOfRelocations: 0
|
|
NumberOfLinenumbers: 0
|
|
CheckSum: 0
|
|
Number: 3
|
|
- Name: .drectve
|
|
Value: 0
|
|
SectionNumber: 4
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
SectionDefinition:
|
|
Length: 48
|
|
NumberOfRelocations: 0
|
|
NumberOfLinenumbers: 0
|
|
CheckSum: 149686238
|
|
Number: 4
|
|
- Name: '.debug$S'
|
|
Value: 0
|
|
SectionNumber: 5
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
SectionDefinition:
|
|
Length: 988
|
|
NumberOfRelocations: 18
|
|
NumberOfLinenumbers: 0
|
|
CheckSum: 2571438511
|
|
Number: 5
|
|
- Name: '.debug$T'
|
|
Value: 0
|
|
SectionNumber: 6
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
SectionDefinition:
|
|
Length: 120
|
|
NumberOfRelocations: 0
|
|
NumberOfLinenumbers: 0
|
|
CheckSum: 3148269371
|
|
Number: 6
|
|
- Name: .llvm_addrsig
|
|
Value: 0
|
|
SectionNumber: 7
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
SectionDefinition:
|
|
Length: 1
|
|
NumberOfRelocations: 0
|
|
NumberOfLinenumbers: 0
|
|
CheckSum: 2428444049
|
|
Number: 7
|
|
- Name: '@feat.00'
|
|
Value: 1
|
|
SectionNumber: -1
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
- Name: '?func@@YAHHH@Z'
|
|
Value: 0
|
|
SectionNumber: 1
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
|
|
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
|
- Name: _main
|
|
Value: 32
|
|
SectionNumber: 1
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
|
|
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
|
...
|