• Home
  • Raw
  • Download

Lines Matching +full:- +full:- +full:pretty

1 //===- llvm-pdbdump.cpp - Dump debug info from a PDB file -------*- C++ -*-===//
8 //===----------------------------------------------------------------------===//
11 // the Microsoft Windows SDK, so will not compile or run on non-Windows
14 //===----------------------------------------------------------------------===//
16 #include "llvm-pdbdump.h"
76 : ByteStream(MutableArrayRef<uint8_t>(Buffer->getBufferStart(), in FileBufferByteStream()
77 Buffer->getBufferEnd())), in FileBufferByteStream()
81 if (FileBuffer->commit()) in commit()
95 PrettySubcommand("pretty",
108 namespace pretty { namespace
130 "load-address",
134 "exclude-types", cl::desc("Exclude types by regular expression"),
137 "exclude-symbols", cl::desc("Exclude symbols by regular expression"),
140 "exclude-compilands", cl::desc("Exclude compilands by regular expression"),
144 "include-types",
148 "include-symbols",
152 "include-compilands",
157 "no-compiler-generated",
161 ExcludeSystemLibraries("no-system-libs",
164 cl::opt<bool> NoClassDefs("no-class-definitions",
167 cl::opt<bool> NoEnumDefs("no-enum-definitions",
183 cl::opt<bool> DumpStreamBlocks("stream-blocks",
186 cl::opt<bool> DumpStreamSummary("stream-summary",
192 DumpTpiRecords("tpi-records",
196 "tpi-record-bytes",
199 cl::opt<bool> DumpTpiHash("tpi-hash", cl::desc("dump CodeView TPI hash stream"),
202 DumpIpiRecords("ipi-records",
206 "ipi-record-bytes",
213 cl::opt<bool> DumpModuleFiles("module-files", cl::desc("dump file information"),
215 cl::opt<bool> DumpLineInfo("line-info",
220 cl::opt<bool> DumpModuleSyms("module-syms", cl::desc("dump module symbols"),
225 DumpSymRecordBytes("sym-record-bytes",
230 cl::opt<bool> DumpSectionContribs("section-contribs",
233 cl::opt<bool> DumpSectionMap("section-map", cl::desc("dump section map"),
235 cl::opt<bool> DumpSectionHeaders("section-headers",
244 cl::opt<std::string> DumpStreamDataName("stream-name",
269 NoFileHeaders("no-file-headers",
275 "stream-metadata",
279 "stream-directory",
280 cl::desc("Dump each stream's block map (implies -stream-metadata)"),
283 "pdb-stream",
284 cl::desc("Dump the PDB Stream (Stream 1) (implies -stream-metadata)"),
287 "dbi-stream",
288 cl::desc("Dump the DBI Stream (Stream 2) (implies -stream-metadata)"),
301 MemoryBuffer::getFileOrSTDIN(Path, /*FileSize=*/-1, in yamlToPdb()
310 llvm::yaml::Input In(Buffer->getBuffer()); in yamlToPdb()
318 opts::yaml2pdb::YamlPdbOutputFile, YamlObj.Headers->FileSize); in yamlToPdb()
327 ExitOnErr(Builder.setSuperBlock(YamlObj.Headers->SuperBlock)); in yamlToPdb()
331 Builder.setDirectoryBlocks(YamlObj.Headers->DirectoryBlocks); in yamlToPdb()
345 InfoBuilder.setAge(YamlObj.PdbStream->Age); in yamlToPdb()
346 InfoBuilder.setGuid(YamlObj.PdbStream->Guid); in yamlToPdb()
347 InfoBuilder.setSignature(YamlObj.PdbStream->Signature); in yamlToPdb()
348 InfoBuilder.setVersion(YamlObj.PdbStream->Version); in yamlToPdb()
353 DbiBuilder.setAge(YamlObj.DbiStream->Age); in yamlToPdb()
354 DbiBuilder.setBuildNumber(YamlObj.DbiStream->BuildNumber); in yamlToPdb()
355 DbiBuilder.setFlags(YamlObj.DbiStream->Flags); in yamlToPdb()
356 DbiBuilder.setMachineType(YamlObj.DbiStream->MachineType); in yamlToPdb()
357 DbiBuilder.setPdbDllRbld(YamlObj.DbiStream->PdbDllRbld); in yamlToPdb()
358 DbiBuilder.setPdbDllVersion(YamlObj.DbiStream->PdbDllVersion); in yamlToPdb()
359 DbiBuilder.setVersionHeader(YamlObj.DbiStream->VerHeader); in yamlToPdb()
366 ExitOnErr(PdbFile->commit()); in yamlToPdb()
374 PDBFile &File = RS->getPDBFile(); in pdb2Yaml()
378 ExitOnErr(O->dump()); in pdb2Yaml()
386 PDBFile &File = RS->getPDBFile(); in dumpRaw()
389 ExitOnErr(O->dump()); in dumpRaw()
397 if (opts::pretty::LoadAddress) in dumpPretty()
398 Session->setLoadAddress(opts::pretty::LoadAddress); in dumpPretty()
402 auto GlobalScope(Session->getGlobalScope()); in dumpPretty()
403 std::string FileName(GlobalScope->getSymbolsFileName()); in dumpPretty()
420 Printer << ": " << GlobalScope->getGuid(); in dumpPretty()
424 Printer << ": " << GlobalScope->getAge(); in dumpPretty()
429 if (GlobalScope->hasCTypes()) in dumpPretty()
431 if (GlobalScope->hasPrivateSymbols()) in dumpPretty()
435 if (opts::pretty::Compilands) { in dumpPretty()
438 << "---COMPILANDS---"; in dumpPretty()
440 auto Compilands = GlobalScope->findAllChildren<PDBSymbolCompiland>(); in dumpPretty()
443 if (opts::pretty::Lines) in dumpPretty()
445 while (auto Compiland = Compilands->getNext()) in dumpPretty()
450 if (opts::pretty::Types) { in dumpPretty()
452 WithColor(Printer, PDB_ColorItem::SectionHeader).get() << "---TYPES---"; in dumpPretty()
459 if (opts::pretty::Symbols) { in dumpPretty()
461 WithColor(Printer, PDB_ColorItem::SectionHeader).get() << "---SYMBOLS---"; in dumpPretty()
463 auto Compilands = GlobalScope->findAllChildren<PDBSymbolCompiland>(); in dumpPretty()
465 while (auto Compiland = Compilands->getNext()) in dumpPretty()
470 if (opts::pretty::Globals) { in dumpPretty()
472 WithColor(Printer, PDB_ColorItem::SectionHeader).get() << "---GLOBALS---"; in dumpPretty()
476 auto Functions = GlobalScope->findAllChildren<PDBSymbolFunc>(); in dumpPretty()
477 while (auto Function = Functions->getNext()) { in dumpPretty()
483 auto Vars = GlobalScope->findAllChildren<PDBSymbolData>(); in dumpPretty()
485 while (auto Var = Vars->getNext()) in dumpPretty()
489 auto Thunks = GlobalScope->findAllChildren<PDBSymbolThunk>(); in dumpPretty()
491 while (auto Thunk = Thunks->getNext()) in dumpPretty()
496 if (opts::pretty::Externals) { in dumpPretty()
498 WithColor(Printer, PDB_ColorItem::SectionHeader).get() << "---EXTERNALS---"; in dumpPretty()
503 if (opts::pretty::Lines) { in dumpPretty()
514 ExitOnErr.setBanner("llvm-pdbdump: "); in main()
551 if (opts::pretty::Lines) in main()
552 opts::pretty::Compilands = true; in main()
554 if (opts::pretty::All) { in main()
555 opts::pretty::Compilands = true; in main()
556 opts::pretty::Symbols = true; in main()
557 opts::pretty::Globals = true; in main()
558 opts::pretty::Types = true; in main()
559 opts::pretty::Externals = true; in main()
560 opts::pretty::Lines = true; in main()
570 if (opts::pretty::ExcludeCompilerGenerated) { in main()
571 opts::pretty::ExcludeTypes.push_back("__vc_attributes"); in main()
572 opts::pretty::ExcludeCompilands.push_back("\\* Linker \\*"); in main()
574 if (opts::pretty::ExcludeSystemLibraries) { in main()
575 opts::pretty::ExcludeCompilands.push_back( in main()
577 opts::pretty::ExcludeCompilands.push_back("f:\\\\dd\\\\vctools\\\\crt"); in main()
578 opts::pretty::ExcludeCompilands.push_back( in main()
581 std::for_each(opts::pretty::InputFilenames.begin(), in main()
582 opts::pretty::InputFilenames.end(), dumpPretty); in main()