diff options
Diffstat (limited to 'llvm/tools/llvm-pdbdump/YAMLOutputStyle.cpp')
-rw-r--r-- | llvm/tools/llvm-pdbdump/YAMLOutputStyle.cpp | 93 |
1 files changed, 20 insertions, 73 deletions
diff --git a/llvm/tools/llvm-pdbdump/YAMLOutputStyle.cpp b/llvm/tools/llvm-pdbdump/YAMLOutputStyle.cpp index a0cabb7a366..cf386bf5486 100644 --- a/llvm/tools/llvm-pdbdump/YAMLOutputStyle.cpp +++ b/llvm/tools/llvm-pdbdump/YAMLOutputStyle.cpp @@ -12,6 +12,7 @@ #include "PdbYaml.h" #include "llvm-pdbdump.h" +#include "llvm/DebugInfo/PDB/Raw/RawConstants.h" #include "llvm/DebugInfo/PDB/Raw/PDBFile.h" using namespace llvm; @@ -19,10 +20,21 @@ using namespace llvm::pdb; YAMLOutputStyle::YAMLOutputStyle(PDBFile &File) : File(File), Out(outs()) {} -Error YAMLOutputStyle::dumpFileHeaders() { - if (!opts::DumpHeaders) - return Error::success(); +Error YAMLOutputStyle::dump() { + if (auto EC = dumpFileHeaders()) + return EC; + + if (auto EC = dumpStreamMetadata()) + return EC; + + if (auto EC = dumpStreamDirectory()) + return EC; + + flush(); + return Error::success(); +} +Error YAMLOutputStyle::dumpFileHeaders() { yaml::MsfHeaders Headers; Obj.Headers.SuperBlock.NumBlocks = File.getBlockCount(); Obj.Headers.SuperBlock.BlockMapAddr = File.getBlockMapIndex(); @@ -32,7 +44,7 @@ Error YAMLOutputStyle::dumpFileHeaders() { Obj.Headers.DirectoryBlocks.assign(Blocks.begin(), Blocks.end()); Obj.Headers.NumDirectoryBlocks = File.getNumDirectoryBlocks(); Obj.Headers.SuperBlock.NumDirectoryBytes = File.getNumDirectoryBytes(); - Obj.Headers.NumStreams = File.getNumStreams(); + Obj.Headers.NumStreams = opts::pdb2yaml::StreamMetadata ? File.getNumStreams() : 0; Obj.Headers.SuperBlock.Unknown0 = File.getUnknown0(); Obj.Headers.SuperBlock.Unknown1 = File.getUnknown1(); Obj.Headers.FileSize = File.getFileSize(); @@ -40,16 +52,16 @@ Error YAMLOutputStyle::dumpFileHeaders() { return Error::success(); } -Error YAMLOutputStyle::dumpStreamSummary() { - if (!opts::DumpStreamSummary) +Error YAMLOutputStyle::dumpStreamMetadata() { + if (!opts::pdb2yaml::StreamMetadata) return Error::success(); Obj.StreamSizes = File.getStreamSizes(); return Error::success(); } -Error YAMLOutputStyle::dumpStreamBlocks() { - if (!opts::DumpStreamBlocks) +Error YAMLOutputStyle::dumpStreamDirectory() { + if (!opts::pdb2yaml::StreamDirectory) return Error::success(); auto StreamMap = File.getStreamMap(); @@ -63,71 +75,6 @@ Error YAMLOutputStyle::dumpStreamBlocks() { return Error::success(); } -Error YAMLOutputStyle::dumpStreamData() { - uint32_t StreamCount = File.getNumStreams(); - StringRef DumpStreamStr = opts::DumpStreamDataIdx; - uint32_t DumpStreamNum; - if (DumpStreamStr.getAsInteger(/*Radix=*/0U, DumpStreamNum) || - DumpStreamNum >= StreamCount) - return Error::success(); - - return Error::success(); -} - -Error YAMLOutputStyle::dumpInfoStream() { - if (!opts::DumpHeaders) - return Error::success(); - return Error::success(); -} - -Error YAMLOutputStyle::dumpNamedStream() { - if (opts::DumpStreamDataName.empty()) - return Error::success(); - - return Error::success(); -} - -Error YAMLOutputStyle::dumpTpiStream(uint32_t StreamIdx) { - return Error::success(); -} - -Error YAMLOutputStyle::dumpDbiStream() { return Error::success(); } - -Error YAMLOutputStyle::dumpSectionContribs() { - if (!opts::DumpSectionContribs) - return Error::success(); - - return Error::success(); -} - -Error YAMLOutputStyle::dumpSectionMap() { - if (!opts::DumpSectionMap) - return Error::success(); - - return Error::success(); -} - -Error YAMLOutputStyle::dumpPublicsStream() { - if (!opts::DumpPublics) - return Error::success(); - - return Error::success(); -} - -Error YAMLOutputStyle::dumpSectionHeaders() { - if (!opts::DumpSectionHeaders) - return Error::success(); - - return Error::success(); -} - -Error YAMLOutputStyle::dumpFpoStream() { - if (!opts::DumpFpo) - return Error::success(); - - return Error::success(); -} - void YAMLOutputStyle::flush() { Out << Obj; outs().flush(); |