; RUN: llvm-pdbutil yaml2pdb -pdb=%t.pdb %p/Inputs/debug-subsections.yaml ; RUN: llvm-pdbutil pdb2yaml -all -no-file-headers %t.pdb | FileCheck --check-prefix=YAML %s ; RUN: llvm-pdbutil raw -subsections=all %t.pdb | FileCheck --check-prefix=RAW %s YAML: Modules: YAML-NEXT: - Module: Foo.obj YAML-NEXT: ObjFile: Foo.obj YAML-NEXT: Subsections: YAML-NEXT: - !CrossModuleExports YAML-NEXT: Exports: YAML-NEXT: - LocalId: 4852 YAML-NEXT: GlobalId: 9283 YAML-NEXT: - LocalId: 2147487875 YAML-NEXT: GlobalId: 9123 YAML: - Module: Bar.obj YAML-NEXT: ObjFile: Bar.obj YAML-NEXT: Subsections: YAML-NEXT: - !CrossModuleExports YAML-NEXT: Exports: YAML-NEXT: - LocalId: 4265 YAML-NEXT: GlobalId: 6097 YAML-NEXT: - LocalId: 4297 YAML-NEXT: GlobalId: 4677 YAML-NEXT: - !CrossModuleImports YAML-NEXT: Imports: YAML-NEXT: - Module: Foo.obj YAML-NEXT: Imports: [ 4852, 2147487875 ] YAML: - Module: 'd:\src\llvm\test\DebugInfo\PDB\Inputs\empty.obj' YAML-NEXT: ObjFile: 'd:\src\llvm\test\DebugInfo\PDB\Inputs\empty.obj' YAML-NEXT: SourceFiles: YAML-NEXT: - 'd:\src\llvm\test\debuginfo\pdb\inputs\empty.cpp' YAML-NEXT: Subsections: YAML-NEXT: - !FileChecksums YAML-NEXT: Checksums: YAML-NEXT: - FileName: 'd:\src\llvm\test\debuginfo\pdb\inputs\empty.cpp' YAML-NEXT: Kind: MD5 YAML-NEXT: Checksum: A0A5BD0D3ECD93FC29D19DE826FBF4BC YAML-NEXT: - FileName: 'f:\dd\externalapis\windows\10\sdk\inc\winerror.h' YAML-NEXT: Kind: MD5 YAML-NEXT: Checksum: 1154D69F5B2650196E1FC34F4134E56B YAML-NEXT: - !Lines YAML-NEXT: CodeSize: 10 YAML-NEXT: Flags: [ ] YAML-NEXT: RelocOffset: 100016 YAML-NEXT: RelocSegment: 1 YAML-NEXT: Blocks: YAML-NEXT: - FileName: 'd:\src\llvm\test\debuginfo\pdb\inputs\empty.cpp' YAML-NEXT: Lines: YAML-NEXT: - Offset: 0 YAML-NEXT: LineStart: 5 YAML-NEXT: IsStatement: true YAML-NEXT: EndDelta: 0 YAML-NEXT: - Offset: 3 YAML-NEXT: LineStart: 6 YAML-NEXT: IsStatement: true YAML-NEXT: EndDelta: 0 YAML-NEXT: - Offset: 8 YAML-NEXT: LineStart: 7 YAML-NEXT: IsStatement: true YAML-NEXT: EndDelta: 0 YAML-NEXT: Columns: YAML-NEXT: - !InlineeLines YAML-NEXT: HasExtraFiles: false YAML-NEXT: Sites: YAML-NEXT: - FileName: 'f:\dd\externalapis\windows\10\sdk\inc\winerror.h' YAML-NEXT: LineNum: 26950 YAML-NEXT: Inlinee: 22767 RAW: DBI Stream { RAW: Modules [ RAW-NEXT: { RAW-NEXT: Name: Foo.obj RAW: Subsections [ RAW-NEXT: CrossModuleExports [ RAW-NEXT: Export { RAW-NEXT: Local: 0x12F4 RAW-NEXT: Global: 0x2443 RAW-NEXT: } RAW-NEXT: Export { RAW-NEXT: Local: 0x80001083 RAW-NEXT: Global: 0x23A3 RAW-NEXT: } RAW-NEXT: ] RAW-NEXT: ] RAW-NEXT: } RAW-NEXT: { RAW-NEXT: Name: Bar.obj RAW: Subsections [ RAW-NEXT: CrossModuleExports [ RAW-NEXT: Export { RAW-NEXT: Local: 0x10A9 RAW-NEXT: Global: 0x17D1 RAW-NEXT: } RAW-NEXT: Export { RAW-NEXT: Local: 0x10C9 RAW-NEXT: Global: 0x1245 RAW-NEXT: } RAW-NEXT: ] RAW-NEXT: CrossModuleImports [ RAW-NEXT: ModuleImport { RAW-NEXT: Module: Foo.obj RAW-NEXT: Imports: [0x12F4, 0x80001083] RAW-NEXT: } RAW-NEXT: ] RAW-NEXT: ] RAW-NEXT: } RAW-NEXT: { RAW-NEXT: Name: d:\src\llvm\test\DebugInfo\PDB\Inputs\empty.obj RAW: Subsections [ RAW-NEXT: FileChecksums { RAW-NEXT: Checksum { RAW-NEXT: FileName: d:\src\llvm\test\debuginfo\pdb\inputs\empty.cpp RAW-NEXT: Kind: MD5 (0x1) RAW-NEXT: Checksum ( RAW-NEXT: 0000: A0A5BD0D 3ECD93FC 29D19DE8 26FBF4BC |....>...)...&...| RAW-NEXT: ) RAW-NEXT: } RAW-NEXT: Checksum { RAW-NEXT: FileName: f:\dd\externalapis\windows\10\sdk\inc\winerror.h RAW-NEXT: Kind: MD5 (0x1) RAW-NEXT: Checksum ( RAW-NEXT: 0000: 1154D69F 5B265019 6E1FC34F 4134E56B |.T..[&P.n..OA4.k| RAW-NEXT: ) RAW-NEXT: } RAW-NEXT: } RAW-NEXT: Lines { RAW-NEXT: RelocSegment: 1 RAW-NEXT: RelocOffset: 100016 RAW-NEXT: CodeSize: 10 RAW-NEXT: HasColumns: No RAW-NEXT: FileEntry { RAW-NEXT: FileName: d:\src\llvm\test\debuginfo\pdb\inputs\empty.cpp RAW-NEXT: Line { RAW-NEXT: Offset: 0 RAW-NEXT: LineNumberStart: 5 RAW-NEXT: EndDelta: 0 RAW-NEXT: IsStatement: Yes RAW-NEXT: } RAW-NEXT: Line { RAW-NEXT: Offset: 3 RAW-NEXT: LineNumberStart: 6 RAW-NEXT: EndDelta: 0 RAW-NEXT: IsStatement: Yes RAW-NEXT: } RAW-NEXT: Line { RAW-NEXT: Offset: 8 RAW-NEXT: LineNumberStart: 7 RAW-NEXT: EndDelta: 0 RAW-NEXT: IsStatement: Yes RAW-NEXT: } RAW-NEXT: } RAW-NEXT: } RAW-NEXT: InlineeLines { RAW-NEXT: HasExtraFiles: No RAW-NEXT: Lines [ RAW-NEXT: Inlinee { RAW-NEXT: FileName: f:\dd\externalapis\windows\10\sdk\inc\winerror.h RAW-NEXT: Function { RAW-NEXT: Index: 0x58ef (unknown function) RAW-NEXT: } RAW-NEXT: SourceLine: 26950 RAW-NEXT: } RAW-NEXT: ] RAW-NEXT: } RAW-NEXT: ] RAW-NEXT: } RAW-NEXT: { RAW-NEXT: Name: ObjFileSubsections RAW-NEXT: Debug Stream Index: 11 RAW-NEXT: Object File Name: ObjFileSubsections RAW-NEXT: Num Files: 0 RAW-NEXT: Source File Name Idx: 0 RAW-NEXT: Pdb File Name Idx: 0 RAW-NEXT: Line Info Byte Size: 0 RAW-NEXT: C13 Line Info Byte Size: 116 RAW-NEXT: Symbol Byte Size: 4 RAW-NEXT: Type Server Index: 0 RAW-NEXT: Has EC Info: No RAW-NEXT: Subsections [ RAW-NEXT: String Table [ RAW-NEXT: String1 RAW-NEXT: String2 RAW-NEXT: String3 RAW-NEXT: ] RAW-NEXT: Symbols [ RAW-NEXT: { RAW-NEXT: ObjectName { RAW-NEXT: Signature: 0x0 RAW-NEXT: ObjectName: ObjFileSubsections RAW-NEXT: } RAW-NEXT: } RAW-NEXT: ] RAW-NEXT: FrameData [ RAW-NEXT: Frame { RAW-NEXT: Rva: 6 RAW-NEXT: CodeSize: 1 RAW-NEXT: LocalSize: 2 RAW-NEXT: ParamsSize: 4 RAW-NEXT: MaxStackSize: 3 RAW-NEXT: FrameFunc: MyFunc RAW-NEXT: PrologSize: 5 RAW-NEXT: SavedRegsSize: 7 RAW-NEXT: Flags: 0 RAW-NEXT: } RAW-NEXT: ] RAW-NEXT: ] RAW-NEXT: } RAW-NEXT: ] RAW-NEXT: }