463 lines · yaml
1# // Compile with clang-cl -m32 /Z7 /GS- /c t.obj pdb-framedata.cpp2#3# int func(int x, int y) {4# return x + y;5# }6#7# int main(int argc, char **argv) {8# return func(argc, argc+1);9# }10 11# RUN: yaml2obj %s -o %t.obj12# RUN: lld-link %t.obj -debug -entry:main -nodefaultlib -debug -out:%t.exe -pdb:%t.pdb13# RUN: llvm-pdbutil dump -fpo %t.pdb | FileCheck %s14 15# CHECK: New FPO Data16# CHECK-NEXT: ============================================================17# CHECK-NEXT: RVA | Code | Locals | Params | Stack | Prolog | Saved Regs | Has SEH | Has C++EH | Start | Program18# CHECK-NEXT: 00001000 | 31 | 0 | 8 | 0 | 6 | 0 | false | false | false | $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =19# CHECK-NEXT: 00001001 | 30 | 0 | 8 | 0 | 5 | 4 | false | false | false | $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =20# CHECK-NEXT: 00001003 | 28 | 0 | 8 | 0 | 3 | 4 | false | false | false | $T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =21# CHECK-NEXT: 00001020 | 53 | 0 | 8 | 0 | 7 | 0 | false | false | false | $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =22# CHECK-NEXT: 00001021 | 52 | 0 | 8 | 0 | 6 | 4 | false | false | false | $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =23# CHECK-NEXT: 00001023 | 50 | 0 | 8 | 0 | 4 | 4 | false | false | false | $T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =24# 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 - ^ =25 26 27--- !COFF28header:29 Machine: IMAGE_FILE_MACHINE_I38630 Characteristics: [ ]31sections:32 - Name: .text33 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]34 Alignment: 1635 SectionData: 5589E583EC088B450C8B4D088B550803550C8945FC89D0894DF883C4085DC3905589E55683EC148B450C8B4D08C745F8000000008B550883C2018B7508893424895424048945F4894DF0E80000000083C4145E5DC336 Relocations:37 - VirtualAddress: 7538 SymbolName: '?func@@YAHHH@Z'39 Type: IMAGE_REL_I386_REL3240 - Name: .data41 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]42 Alignment: 443 SectionData: ''44 - Name: .bss45 Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]46 Alignment: 447 SectionData: ''48 - Name: .drectve49 Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]50 Alignment: 151 SectionData: 202F44454641554C544C49423A6C6962636D742E6C6962202F44454641554C544C49423A6F6C646E616D65732E6C696252 - Name: '.debug$S'53 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]54 Alignment: 455 Subsections:56 - !Symbols57 Records:58 - Kind: S_COMPILE359 Compile3Sym:60 Flags: [ ]61 Machine: Pentium362 FrontendMajor: 863 FrontendMinor: 064 FrontendBuild: 065 FrontendQFE: 066 BackendMajor: 800067 BackendMinor: 068 BackendBuild: 069 BackendQFE: 070 Version: 'clang version 8.0.0 '71 - !FrameData72 Frames:73 - CodeSize: 3174 FrameFunc: '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = '75 LocalSize: 076 MaxStackSize: 077 ParamsSize: 878 PrologSize: 679 RvaStart: 080 SavedRegsSize: 081 - CodeSize: 3082 FrameFunc: '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '83 LocalSize: 084 MaxStackSize: 085 ParamsSize: 886 PrologSize: 587 RvaStart: 188 SavedRegsSize: 489 - CodeSize: 2890 FrameFunc: '$T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '91 LocalSize: 092 MaxStackSize: 093 ParamsSize: 894 PrologSize: 395 RvaStart: 396 SavedRegsSize: 497 - !Symbols98 Records:99 - Kind: S_GPROC32_ID100 ProcSym:101 CodeSize: 31102 DbgStart: 0103 DbgEnd: 0104 FunctionType: 4098105 Flags: [ ]106 DisplayName: func107 - Kind: S_LOCAL108 LocalSym:109 Type: 116110 Flags: [ IsParameter ]111 VarName: x112 - Kind: S_DEFRANGE_REGISTER_REL113 DefRangeRegisterRelSym:114 Register: 22115 Flags: 0116 BasePointerOffset: 8117 Range:118 OffsetStart: 12119 ISectStart: 0120 Range: 19121 Gaps:122 - Kind: S_LOCAL123 LocalSym:124 Type: 116125 Flags: [ IsParameter ]126 VarName: y127 - Kind: S_DEFRANGE_REGISTER_REL128 DefRangeRegisterRelSym:129 Register: 22130 Flags: 0131 BasePointerOffset: 12132 Range:133 OffsetStart: 12134 ISectStart: 0135 Range: 19136 Gaps:137 - Kind: S_PROC_ID_END138 ScopeEndSym:139 - !Lines140 CodeSize: 31141 Flags: [ ]142 RelocOffset: 0143 RelocSegment: 0144 Blocks:145 - FileName: 'D:\src\llvmbuild\cl\Debug\x64\pdb-framedata.cpp'146 Lines:147 - Offset: 0148 LineStart: 3149 IsStatement: false150 EndDelta: 0151 - Offset: 12152 LineStart: 4153 IsStatement: false154 EndDelta: 0155 Columns:156 - !FrameData157 Frames:158 - CodeSize: 53159 FrameFunc: '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = '160 LocalSize: 0161 MaxStackSize: 0162 ParamsSize: 8163 PrologSize: 7164 RvaStart: 0165 SavedRegsSize: 0166 - CodeSize: 52167 FrameFunc: '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '168 LocalSize: 0169 MaxStackSize: 0170 ParamsSize: 8171 PrologSize: 6172 RvaStart: 1173 SavedRegsSize: 4174 - CodeSize: 50175 FrameFunc: '$T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '176 LocalSize: 0177 MaxStackSize: 0178 ParamsSize: 8179 PrologSize: 4180 RvaStart: 3181 SavedRegsSize: 4182 - CodeSize: 49183 FrameFunc: '$T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $esi $T0 8 - ^ = '184 LocalSize: 0185 MaxStackSize: 0186 ParamsSize: 8187 PrologSize: 3188 RvaStart: 4189 SavedRegsSize: 8190 - !Symbols191 Records:192 - Kind: S_GPROC32_ID193 ProcSym:194 CodeSize: 53195 DbgStart: 0196 DbgEnd: 0197 FunctionType: 4102198 Flags: [ ]199 DisplayName: main200 - Kind: S_LOCAL201 LocalSym:202 Type: 116203 Flags: [ IsParameter ]204 VarName: argc205 - Kind: S_DEFRANGE_REGISTER_REL206 DefRangeRegisterRelSym:207 Register: 22208 Flags: 0209 BasePointerOffset: 8210 Range:211 OffsetStart: 52212 ISectStart: 0213 Range: 33214 Gaps:215 - Kind: S_LOCAL216 LocalSym:217 Type: 4099218 Flags: [ IsParameter ]219 VarName: argv220 - Kind: S_DEFRANGE_REGISTER_REL221 DefRangeRegisterRelSym:222 Register: 22223 Flags: 0224 BasePointerOffset: 12225 Range:226 OffsetStart: 52227 ISectStart: 0228 Range: 33229 Gaps:230 - Kind: S_PROC_ID_END231 ScopeEndSym:232 - !Lines233 CodeSize: 53234 Flags: [ ]235 RelocOffset: 0236 RelocSegment: 0237 Blocks:238 - FileName: 'D:\src\llvmbuild\cl\Debug\x64\pdb-framedata.cpp'239 Lines:240 - Offset: 0241 LineStart: 7242 IsStatement: false243 EndDelta: 0244 - Offset: 20245 LineStart: 8246 IsStatement: false247 EndDelta: 0248 Columns:249 - !FileChecksums250 Checksums:251 - FileName: 'D:\src\llvmbuild\cl\Debug\x64\pdb-framedata.cpp'252 Kind: MD5253 Checksum: A611B73E19B77B02646FAAF7CAEB025D254 - !StringTable255 Strings:256 - 'D:\src\llvmbuild\cl\Debug\x64\pdb-framedata.cpp'257 - '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = '258 - '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '259 - '$T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '260 - '$T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $esi $T0 8 - ^ = '261 - ''262 Relocations:263 - VirtualAddress: 68264 SymbolName: '?func@@YAHHH@Z'265 Type: IMAGE_REL_I386_DIR32NB266 - VirtualAddress: 208267 SymbolName: '?func@@YAHHH@Z'268 Type: IMAGE_REL_I386_SECREL269 - VirtualAddress: 212270 SymbolName: '?func@@YAHHH@Z'271 Type: IMAGE_REL_I386_SECTION272 - VirtualAddress: 244273 SymbolName: .text274 Type: IMAGE_REL_I386_SECREL275 - VirtualAddress: 248276 SymbolName: .text277 Type: IMAGE_REL_I386_SECTION278 - VirtualAddress: 276279 SymbolName: .text280 Type: IMAGE_REL_I386_SECREL281 - VirtualAddress: 280282 SymbolName: .text283 Type: IMAGE_REL_I386_SECTION284 - VirtualAddress: 296285 SymbolName: '?func@@YAHHH@Z'286 Type: IMAGE_REL_I386_SECREL287 - VirtualAddress: 300288 SymbolName: '?func@@YAHHH@Z'289 Type: IMAGE_REL_I386_SECTION290 - VirtualAddress: 344291 SymbolName: _main292 Type: IMAGE_REL_I386_DIR32NB293 - VirtualAddress: 516294 SymbolName: _main295 Type: IMAGE_REL_I386_SECREL296 - VirtualAddress: 520297 SymbolName: _main298 Type: IMAGE_REL_I386_SECTION299 - VirtualAddress: 555300 SymbolName: .text301 Type: IMAGE_REL_I386_SECREL302 - VirtualAddress: 559303 SymbolName: .text304 Type: IMAGE_REL_I386_SECTION305 - VirtualAddress: 590306 SymbolName: .text307 Type: IMAGE_REL_I386_SECREL308 - VirtualAddress: 594309 SymbolName: .text310 Type: IMAGE_REL_I386_SECTION311 - VirtualAddress: 612312 SymbolName: _main313 Type: IMAGE_REL_I386_SECREL314 - VirtualAddress: 616315 SymbolName: _main316 Type: IMAGE_REL_I386_SECTION317 - Name: '.debug$T'318 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]319 Alignment: 4320 Types:321 - Kind: LF_ARGLIST322 ArgList:323 ArgIndices: [ 116, 116 ]324 - Kind: LF_PROCEDURE325 Procedure:326 ReturnType: 116327 CallConv: NearC328 Options: [ None ]329 ParameterCount: 2330 ArgumentList: 4096331 - Kind: LF_FUNC_ID332 FuncId:333 ParentScope: 0334 FunctionType: 4097335 Name: func336 - Kind: LF_POINTER337 Pointer:338 ReferentType: 1136339 Attrs: 32778340 - Kind: LF_ARGLIST341 ArgList:342 ArgIndices: [ 116, 4099 ]343 - Kind: LF_PROCEDURE344 Procedure:345 ReturnType: 116346 CallConv: NearC347 Options: [ None ]348 ParameterCount: 2349 ArgumentList: 4100350 - Kind: LF_FUNC_ID351 FuncId:352 ParentScope: 0353 FunctionType: 4101354 Name: main355 - Name: .llvm_addrsig356 Characteristics: [ IMAGE_SCN_LNK_REMOVE ]357 Alignment: 1358 SectionData: 0F359symbols:360 - Name: .text361 Value: 0362 SectionNumber: 1363 SimpleType: IMAGE_SYM_TYPE_NULL364 ComplexType: IMAGE_SYM_DTYPE_NULL365 StorageClass: IMAGE_SYM_CLASS_STATIC366 SectionDefinition:367 Length: 85368 NumberOfRelocations: 1369 NumberOfLinenumbers: 0370 CheckSum: 1989857796371 Number: 1372 - Name: .data373 Value: 0374 SectionNumber: 2375 SimpleType: IMAGE_SYM_TYPE_NULL376 ComplexType: IMAGE_SYM_DTYPE_NULL377 StorageClass: IMAGE_SYM_CLASS_STATIC378 SectionDefinition:379 Length: 0380 NumberOfRelocations: 0381 NumberOfLinenumbers: 0382 CheckSum: 0383 Number: 2384 - Name: .bss385 Value: 0386 SectionNumber: 3387 SimpleType: IMAGE_SYM_TYPE_NULL388 ComplexType: IMAGE_SYM_DTYPE_NULL389 StorageClass: IMAGE_SYM_CLASS_STATIC390 SectionDefinition:391 Length: 0392 NumberOfRelocations: 0393 NumberOfLinenumbers: 0394 CheckSum: 0395 Number: 3396 - Name: .drectve397 Value: 0398 SectionNumber: 4399 SimpleType: IMAGE_SYM_TYPE_NULL400 ComplexType: IMAGE_SYM_DTYPE_NULL401 StorageClass: IMAGE_SYM_CLASS_STATIC402 SectionDefinition:403 Length: 48404 NumberOfRelocations: 0405 NumberOfLinenumbers: 0406 CheckSum: 149686238407 Number: 4408 - Name: '.debug$S'409 Value: 0410 SectionNumber: 5411 SimpleType: IMAGE_SYM_TYPE_NULL412 ComplexType: IMAGE_SYM_DTYPE_NULL413 StorageClass: IMAGE_SYM_CLASS_STATIC414 SectionDefinition:415 Length: 988416 NumberOfRelocations: 18417 NumberOfLinenumbers: 0418 CheckSum: 2571438511419 Number: 5420 - Name: '.debug$T'421 Value: 0422 SectionNumber: 6423 SimpleType: IMAGE_SYM_TYPE_NULL424 ComplexType: IMAGE_SYM_DTYPE_NULL425 StorageClass: IMAGE_SYM_CLASS_STATIC426 SectionDefinition:427 Length: 120428 NumberOfRelocations: 0429 NumberOfLinenumbers: 0430 CheckSum: 3148269371431 Number: 6432 - Name: .llvm_addrsig433 Value: 0434 SectionNumber: 7435 SimpleType: IMAGE_SYM_TYPE_NULL436 ComplexType: IMAGE_SYM_DTYPE_NULL437 StorageClass: IMAGE_SYM_CLASS_STATIC438 SectionDefinition:439 Length: 1440 NumberOfRelocations: 0441 NumberOfLinenumbers: 0442 CheckSum: 2428444049443 Number: 7444 - Name: '@feat.00'445 Value: 1446 SectionNumber: -1447 SimpleType: IMAGE_SYM_TYPE_NULL448 ComplexType: IMAGE_SYM_DTYPE_NULL449 StorageClass: IMAGE_SYM_CLASS_STATIC450 - Name: '?func@@YAHHH@Z'451 Value: 0452 SectionNumber: 1453 SimpleType: IMAGE_SYM_TYPE_NULL454 ComplexType: IMAGE_SYM_DTYPE_FUNCTION455 StorageClass: IMAGE_SYM_CLASS_EXTERNAL456 - Name: _main457 Value: 32458 SectionNumber: 1459 SimpleType: IMAGE_SYM_TYPE_NULL460 ComplexType: IMAGE_SYM_DTYPE_FUNCTION461 StorageClass: IMAGE_SYM_CLASS_EXTERNAL462...463