[PDB] Support executables and source/line info.
[oota-llvm.git] / lib / DebugInfo / PDB / PDBSymbolExe.cpp
index e7871e3bd40113f483b5c32ccc6d275d19dc97c5..c9e34ea501dd7947f6ac1d2915f9061438ffd1ba 100644 (file)
@@ -9,13 +9,7 @@
 
 #include "llvm/DebugInfo/PDB/PDBSymbolExe.h"
 
-#include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
-#include "llvm/DebugInfo/PDB/PDBExtras.h"
-#include "llvm/DebugInfo/PDB/PDBSymbol.h"
-#include "llvm/Support/ConvertUTF.h"
-#include "llvm/Support/FileSystem.h"
-#include "llvm/Support/raw_ostream.h"
-#include <utility>
+#include "llvm/DebugInfo/PDB/PDBSymDumper.h"
 
 #include <utility>
 
@@ -25,52 +19,4 @@ PDBSymbolExe::PDBSymbolExe(const IPDBSession &PDBSession,
                            std::unique_ptr<IPDBRawSymbol> Symbol)
     : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
-void PDBSymbolExe::dump(raw_ostream &OS, int Indent,
-                        PDB_DumpLevel Level) const {
-  std::string FileName(getSymbolsFileName());
-
-  OS << stream_indent(Indent) << "Summary for " << FileName << "\n";
-
-  uint64_t FileSize = 0;
-  if (!llvm::sys::fs::file_size(FileName, FileSize))
-    OS << stream_indent(Indent + 2) << "Size: " << FileSize << " bytes\n";
-  else
-    OS << stream_indent(Indent + 2) << "Size: (Unable to obtain file size)\n";
-  PDB_UniqueId Guid = getGuid();
-  OS << stream_indent(Indent + 2) << "Guid: " << Guid << "\n";
-  OS << stream_indent(Indent + 2) << "Age: " << getAge() << "\n";
-  OS << stream_indent(Indent + 2) << "Attributes: ";
-  if (hasCTypes())
-    OS << "HasCTypes ";
-  if (hasPrivateSymbols())
-    OS << "HasPrivateSymbols ";
-  OS << "\n";
-
-  TagStats Stats;
-  auto ChildrenEnum = getChildStats(Stats);
-  OS << stream_indent(Indent + 2) << "Children: " << Stats << "\n";
-  while (auto Child = ChildrenEnum->getNext()) {
-    // Skip uninteresting types.  These are useful to print as part of type
-    // hierarchies, but as general children of the global scope, they are
-    // not very interesting.
-    switch (Child->getSymTag()) {
-    case PDB_SymType::ArrayType:
-    case PDB_SymType::BaseClass:
-    case PDB_SymType::BuiltinType:
-    case PDB_SymType::CompilandEnv:
-    case PDB_SymType::CustomType:
-    case PDB_SymType::Dimension:
-    case PDB_SymType::Friend:
-    case PDB_SymType::ManagedType:
-    case PDB_SymType::VTableShape:
-    case PDB_SymType::PointerType:
-    case PDB_SymType::FunctionSig:
-    case PDB_SymType::FunctionArg:
-      continue;
-    default:
-      break;
-    }
-    Child->dump(OS, Indent + 4, PDB_DumpLevel::Normal);
-    OS << "\n";
-  }
-}
+void PDBSymbolExe::dump(PDBSymDumper &Dumper) const { Dumper.dump(*this); }