diff options
| author | Zachary Turner <zturner@google.com> | 2017-06-09 00:28:08 +0000 |
|---|---|---|
| committer | Zachary Turner <zturner@google.com> | 2017-06-09 00:28:08 +0000 |
| commit | deb391309c9861dcdc995b2c70c2d64189611c3b (patch) | |
| tree | 10fcd1c2eaef9f3a7c3fc6ce3693cc5c756ea3db /llvm/test/DebugInfo/PDB/pdbdump-debug-subsections.test | |
| parent | 4fcdaa9423daa465a40bacfe21846276f96059bc (diff) | |
| download | bcm5719-llvm-deb391309c9861dcdc995b2c70c2d64189611c3b.tar.gz bcm5719-llvm-deb391309c9861dcdc995b2c70c2d64189611c3b.zip | |
[CodeView] Support remaining debug subsection types
This adds support for Symbols, StringTable, and FrameData subsection
types. Even though these subsections rarely if ever appear in a PDB
file (they are usually in object files), there's no theoretical reason
why they *couldn't* appear in a PDB. The real issue though is that in
order to add support for dumping and writing them (which will be useful
for object files), we need a way to test them. And since there is no
support for reading and writing them to / from object files yet, making
PDB support them is the best way to both add support for the underlying
format and add support for tests at the same time. Later, when we go
to add support for reading / writing them from object files, we'll need
only minimal changes in the underlying read/write code.
llvm-svn: 305037
Diffstat (limited to 'llvm/test/DebugInfo/PDB/pdbdump-debug-subsections.test')
| -rw-r--r-- | llvm/test/DebugInfo/PDB/pdbdump-debug-subsections.test | 166 |
1 files changed, 103 insertions, 63 deletions
diff --git a/llvm/test/DebugInfo/PDB/pdbdump-debug-subsections.test b/llvm/test/DebugInfo/PDB/pdbdump-debug-subsections.test index d95def71068..46f4cbaaaa3 100644 --- a/llvm/test/DebugInfo/PDB/pdbdump-debug-subsections.test +++ b/llvm/test/DebugInfo/PDB/pdbdump-debug-subsections.test @@ -1,5 +1,4 @@ ; RUN: llvm-pdbdump yaml2pdb -pdb=%t.pdb %p/Inputs/debug-subsections.yaml - ; RUN: llvm-pdbdump pdb2yaml -all -no-file-headers %t.pdb | FileCheck --check-prefix=YAML %s ; RUN: llvm-pdbdump raw -subsections=all %t.pdb | FileCheck --check-prefix=RAW %s @@ -106,65 +105,106 @@ 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: 16 -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:} +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: 16 +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: } |

