1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/include/llvm/DebugInfo/PDB
Zachary Turner f5c6b23b50 [llvm-pdbutil] rewrite the "raw" output style.
After some internal discussions, we agreed that the raw output style had
outlived its usefulness. It was originally created before we had even
thought of dumping to YAML, and it was intended to give us some insight
into the internals of a PDB file. Now we have YAML mode which does
almost exactly this but is more powerful in that it can round-trip back
to a PDB, which the raw mode could not do. So the raw mode had become
purely a maintenance burden.

One option was to just delete it. However, its original goal was to be
as readable as possible while staying close to the "metal" - i.e.
presenting the output in a way that maps directly to the underlying file
format. We don't actually need that last requirement anymore since it's
covered by the yaml mode, so we could repurpose "raw" mode to actually
just be as readable as possible.

This patch implements about 80% of the functionality previously in raw
mode, but in a completely different style that is more akin to what
cvdump outputs. Records are very compressed, often times appearing on
just one line. One nice thing about this is that it makes full record
matching easier, because you can grep for indices, names, and leaf types
on a single line often.

See the tests for some examples of what the new output looks like.

Note that this patch actually regresses the functionality of raw mode in
a few areas, but only because the patch was already unreasonably large
and going 100% would have been even worse. Specifically, this patch is
missing:

The ability to dump module debug subsections (checksums, lines, etc)
The ability to dump section headers
Aside from that everything is here. While goign through the tests fixing
them all up, I found many duplicate tests. They've been deleted. In
subsequent patches I will go through and re-add the missing
functionality.

Differential Revision: https://reviews.llvm.org/D34191

llvm-svn: 305495
2017-06-15 19:34:41 +00:00
..
DIA Fix several more missing headers, all of these were hidden by "lucky" 2017-06-06 12:31:55 +00:00
Native [llvm-pdbutil] rewrite the "raw" output style. 2017-06-15 19:34:41 +00:00
ConcreteSymbolEnumerator.h [llvm-pdbdump] Recursively dump class layout. 2017-04-13 21:11:00 +00:00
GenericError.h [pdb] Improve error messages when DIA is not found. 2016-10-19 16:42:20 +00:00
IPDBDataStream.h Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
IPDBEnumChildren.h [DebugInfo] Fix some Clang-tidy modernize-use-default, modernize-use-equal-delete and Include What You Use warnings; other minor fixes (NFC). 2016-11-18 18:00:19 +00:00
IPDBLineNumber.h Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
IPDBRawSymbol.h [llvm-pdbdump] Re-write the record layout code to be more resilient. 2017-04-24 17:47:24 +00:00
IPDBSession.h [llvm-pdbdump] More advanced class definition dumping. 2017-04-12 23:18:21 +00:00
IPDBSourceFile.h Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDB.h Port DebugInfoPDB over to using llvm::Error. 2016-05-06 20:51:57 +00:00
PDBContext.h [DWARF] Introduce Dump Options 2017-06-01 18:18:23 +00:00
PDBExtras.h Properly parse the TypeServer2 record. 2017-02-03 21:22:27 +00:00
PDBSymbol.h [PDB] Don't crash on /debug:fastlink PDBs. 2017-06-08 16:00:40 +00:00
PDBSymbolAnnotation.h Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolBlock.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolCompiland.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolCompilandDetails.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolCompilandEnv.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolCustom.h Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolData.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolExe.h [llvm-pdbdump] More advanced class definition dumping. 2017-04-12 23:18:21 +00:00
PDBSymbolFunc.h [llvm-pdbdump] Recursively dump class layout. 2017-04-13 21:11:00 +00:00
PDBSymbolFuncDebugEnd.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolFuncDebugStart.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolLabel.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolPublicSymbol.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolThunk.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolTypeArray.h Improves pretty printing of variable types in llvm-pdbdump 2017-04-10 16:43:09 +00:00
PDBSymbolTypeBaseClass.h [llvm-pdbdump] More advanced class definition dumping. 2017-04-12 23:18:21 +00:00
PDBSymbolTypeBuiltin.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolTypeCustom.h Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeDimension.h Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeEnum.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolTypeFriend.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolTypeFunctionArg.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolTypeFunctionSig.h Improves pretty printing of variable types in llvm-pdbdump 2017-04-10 16:43:09 +00:00
PDBSymbolTypeManaged.h Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypePointer.h Improves pretty printing of variable types in llvm-pdbdump 2017-04-10 16:43:09 +00:00
PDBSymbolTypeTypedef.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolTypeUDT.h [llvm-pdbdump] More advanced class definition dumping. 2017-04-12 23:18:21 +00:00
PDBSymbolTypeVTable.h [llvm-pdbdump] More advanced class definition dumping. 2017-04-12 23:18:21 +00:00
PDBSymbolTypeVTableShape.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymbolUnknown.h Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolUsingNamespace.h General usability improvements to generic PDB library. 2017-04-10 06:14:09 +00:00
PDBSymDumper.h Improves pretty printing of variable types in llvm-pdbdump 2017-04-10 16:43:09 +00:00
PDBTypes.h NFC: Rename PDB_ReaderType::Raw to Native for consistency with the NativeSession rename. 2017-01-27 00:01:55 +00:00
UDTLayout.h [llvm-pdbdump] Allow sorting / filtering by immediate padding 2017-04-25 20:22:29 +00:00