void AppleAcceleratorTable::Header::dump(ScopedPrinter &W) const { DictScope HeaderScope(W, "Header"); W.printHex("Magic", Magic); W.printHex("Version", Version); W.printHex("Hash function", HashFunction); W.printNumber("Bucket count", BucketCount); W.printNumber("Hashes count", HashCount); W.printNumber("HeaderData length", HeaderDataLength); }
void CVTypeDumper::printTypeIndex(ScopedPrinter &Printer, StringRef FieldName, TypeIndex TI, TypeDatabase &DB) { StringRef TypeName; if (!TI.isNoneType()) TypeName = DB.getTypeName(TI); if (!TypeName.empty()) Printer.printHex(FieldName, TypeName, TI.getIndex()); else Printer.printHex(FieldName, TI.getIndex()); }
void DWARFDebugNames::Header::dump(ScopedPrinter &W) const { DictScope HeaderScope(W, "Header"); W.printHex("Length", UnitLength); W.printNumber("Version", Version); W.printHex("Padding", Padding); W.printNumber("CU count", CompUnitCount); W.printNumber("Local TU count", LocalTypeUnitCount); W.printNumber("Foreign TU count", ForeignTypeUnitCount); W.printNumber("Bucket count", BucketCount); W.printNumber("Name count", NameCount); W.printHex("Abbreviations table size", AbbrevTableSize); W.startLine() << "Augmentation: '" << AugmentationString << "'\n"; }
void llvm::codeview::printTypeIndex(ScopedPrinter &Printer, StringRef FieldName, TypeIndex TI, TypeCollection &Types) { StringRef TypeName; if (!TI.isNoneType()) { if (TI.isSimple()) TypeName = TypeIndex::simpleTypeName(TI); else TypeName = Types.getTypeName(TI); } if (!TypeName.empty()) Printer.printHex(FieldName, TypeName, TI.getIndex()); else Printer.printHex(FieldName, TI.getIndex()); }
static void dumpNamedStream(ScopedPrinter &P, PDBFile &File, StringRef Stream) { InfoStream &IS = File.getPDBInfoStream(); uint32_t NameStreamIndex = IS.getNamedStreamIndex(Stream); if (NameStreamIndex != 0) { std::string Name("Stream '"); Name += Stream; Name += "'"; DictScope D(P, Name); P.printNumber("Index", NameStreamIndex); MappedBlockStream NameStream(NameStreamIndex, File); StreamReader Reader(NameStream); NameHashTable NameTable; NameTable.load(Reader); P.printHex("Signature", NameTable.getSignature()); P.printNumber("Version", NameTable.getHashVersion()); P.printNumber("Name Count", NameTable.getNameCount()); ListScope L(P, "Names"); for (uint32_t ID : NameTable.name_ids()) { StringRef Str = NameTable.getStringForID(ID); if (!Str.empty()) P.printString(Str); } } }
static void dumpInfoStream(ScopedPrinter &P, PDBFile &File) { InfoStream &IS = File.getPDBInfoStream(); DictScope D(P, "PDB Stream"); P.printNumber("Version", IS.getVersion()); P.printHex("Signature", IS.getSignature()); P.printNumber("Age", IS.getAge()); P.printObject("Guid", IS.getGuid()); }
void DWARFDebugNames::Entry::dump(ScopedPrinter &W) const { W.printHex("Abbrev", Abbr->Code); W.startLine() << formatv("Tag: {0}\n", Abbr->Tag); assert(Abbr->Attributes.size() == Values.size()); for (const auto &Tuple : zip_first(Abbr->Attributes, Values)) { W.startLine() << formatv("{0}: ", std::get<0>(Tuple).Index); std::get<1>(Tuple).dump(W.getOStream()); W.getOStream() << '\n'; } }
void DWARFDebugNames::NameIndex::dumpName(ScopedPrinter &W, const NameTableEntry &NTE, Optional<uint32_t> Hash) const { DictScope NameScope(W, ("Name " + Twine(NTE.getIndex())).str()); if (Hash) W.printHex("Hash", *Hash); W.startLine() << format("String: 0x%08x", NTE.getStringOffset()); W.getOStream() << " \"" << NTE.getString() << "\"\n"; uint32_t EntryOffset = NTE.getEntryOffset(); while (dumpEntry(W, &EntryOffset)) /*empty*/; }
void DWARFDebugNames::NameIndex::dumpName(ScopedPrinter &W, uint32_t Index, Optional<uint32_t> Hash) const { const DataExtractor &SS = Section.StringSection; NameTableEntry NTE = getNameTableEntry(Index); DictScope NameScope(W, ("Name " + Twine(Index)).str()); if (Hash) W.printHex("Hash", *Hash); W.startLine() << format("String: 0x%08x", NTE.StringOffset); W.getOStream() << " \"" << SS.getCStr(&NTE.StringOffset) << "\"\n"; while (dumpEntry(W, &NTE.EntryOffset)) /*empty*/; }
static void dumpTpiStream(ScopedPrinter &P, PDBFile &File) { if (!opts::DumpTypeStream) return; DictScope D(P, "Type Info Stream"); TpiStream &Tpi = File.getPDBTpiStream(); P.printNumber("TPI Version", Tpi.getTpiVersion()); P.printNumber("Record count", Tpi.NumTypeRecords()); if (!opts::DumpTpiRecordBytes) return; ListScope L(P, "Records"); for (auto &Type : Tpi.types()) { DictScope DD(P, ""); P.printHex("Kind", unsigned(Type.Leaf)); P.printBinaryBlock("Bytes", Type.LeafData); } }