reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
5148 DictScope D(W, "ElfHeader"); 5150 DictScope D(W, "Ident"); 5151 W.printBinary("Magic", makeArrayRef(E->e_ident).slice(ELF::EI_MAG0, 4)); 5152 W.printEnum("Class", E->e_ident[ELF::EI_CLASS], makeArrayRef(ElfClass)); 5153 W.printEnum("DataEncoding", E->e_ident[ELF::EI_DATA], 5155 W.printNumber("FileVersion", E->e_ident[ELF::EI_VERSION]); 5172 W.printEnum("OS/ABI", E->e_ident[ELF::EI_OSABI], OSABI); 5173 W.printNumber("ABIVersion", E->e_ident[ELF::EI_ABIVERSION]); 5174 W.printBinary("Unused", makeArrayRef(E->e_ident).slice(ELF::EI_PAD)); 5177 W.printEnum("Type", E->e_type, makeArrayRef(ElfObjectFileType)); 5178 W.printEnum("Machine", E->e_machine, makeArrayRef(ElfMachineType)); 5179 W.printNumber("Version", E->e_version); 5180 W.printHex("Entry", E->e_entry); 5181 W.printHex("ProgramHeaderOffset", E->e_phoff); 5182 W.printHex("SectionHeaderOffset", E->e_shoff); 5184 W.printFlags("Flags", E->e_flags, makeArrayRef(ElfHeaderMipsFlags), 5188 W.printFlags("Flags", E->e_flags, makeArrayRef(ElfHeaderAMDGPUFlags), 5191 W.printFlags("Flags", E->e_flags, makeArrayRef(ElfHeaderRISCVFlags)); 5193 W.printFlags("Flags", E->e_flags); 5194 W.printNumber("HeaderSize", E->e_ehsize); 5195 W.printNumber("ProgramHeaderEntrySize", E->e_phentsize); 5196 W.printNumber("ProgramHeaderCount", E->e_phnum); 5197 W.printNumber("SectionHeaderEntrySize", E->e_shentsize); 5198 W.printString("SectionHeaderCount", 5200 W.printString("StringTableSectionIndex", 5207 DictScope Lists(W, "Groups"); 5211 DictScope D(W, "Group"); 5212 W.printNumber("Name", G.Name, G.ShName); 5213 W.printNumber("Index", G.Index); 5214 W.printNumber("Link", G.Link); 5215 W.printNumber("Info", G.Info); 5216 W.printHex("Type", getGroupType(G.Type), G.Type); 5217 W.startLine() << "Signature: " << G.Signature << "\n"; 5219 ListScope L(W, "Section(s) in group"); 5223 W.flush(); 5231 W.startLine() << GM.Name << " (" << GM.Index << ")\n"; 5236 W.startLine() << "There are no group sections in the file.\n"; 5240 ListScope D(W, "Relocations"); 5254 W.startLine() << "Section (" << SectionNumber << ") " << Name << " {\n"; 5255 W.indent(); 5259 W.unindent(); 5260 W.startLine() << "}\n"; 5288 W.startLine() << W.hex(R) << "\n"; 5288 W.startLine() << W.hex(R) << "\n"; 5327 DictScope Group(W, "Relocation"); 5328 W.printHex("Offset", Rel.r_offset); 5329 W.printNumber("Type", RelocName, (int)Rel.getType(Obj->isMips64EL())); 5330 W.printNumber("Symbol", !TargetName.empty() ? TargetName : "-", 5332 W.printHex("Addend", Rel.r_addend); 5334 raw_ostream &OS = W.startLine(); 5335 OS << W.hex(Rel.r_offset) << " " << RelocName << " " 5336 << (!TargetName.empty() ? TargetName : "-") << " " << W.hex(Rel.r_addend) 5343 ListScope SectionsD(W, "Sections"); 5351 DictScope SectionD(W, "Section"); 5352 W.printNumber("Index", ++SectionIndex); 5353 W.printNumber("Name", Name, Sec.sh_name); 5354 W.printHex( 5386 W.printFlags("Flags", Sec.sh_flags, makeArrayRef(SectionFlags)); 5387 W.printHex("Address", Sec.sh_addr); 5388 W.printHex("Offset", Sec.sh_offset); 5389 W.printNumber("Size", Sec.sh_size); 5390 W.printNumber("Link", Sec.sh_link); 5391 W.printNumber("Info", Sec.sh_info); 5392 W.printNumber("AddressAlignment", Sec.sh_addralign); 5393 W.printNumber("EntrySize", Sec.sh_entsize); 5396 ListScope D(W, "Relocations"); 5401 ListScope D(W, "Symbols"); 5422 W.printBinaryBlock( 5441 DictScope D(W, "Symbol"); 5442 W.printNumber("Name", FullSymbolName, Symbol->st_name); 5443 W.printHex("Value", Symbol->st_value); 5444 W.printNumber("Size", Symbol->st_size); 5445 W.printEnum("Binding", Symbol->getBinding(), makeArrayRef(ElfSymbolBindings)); 5448 W.printEnum("Type", SymbolType, makeArrayRef(AMDGPUSymbolTypes)); 5450 W.printEnum("Type", SymbolType, makeArrayRef(ElfSymbolTypes)); 5454 W.printNumber("Other", 0); 5471 W.printFlags("Other", Symbol->st_other, makeArrayRef(SymOtherFlags), 0x3u); 5473 W.printHex("Section", SectionName, SectionIndex); 5486 ListScope Group(W, "Symbols"); 5492 ListScope Group(W, "DynamicSymbols"); 5501 raw_ostream &OS = W.getOStream(); 5502 W.startLine() << "DynamicSection [ (" << Table.size() << " entries)\n"; 5506 W.startLine() << " Tag Type Name/Value\n"; 5508 W.startLine() << " Tag Type Name/Value\n"; 5511 W.startLine() << " " << format_hex(Tag, Is64 ? 18 : 10, true) << " " 5518 W.startLine() << "]\n"; 5529 W.startLine() << "Dynamic Relocations {\n"; 5530 W.indent(); 5560 W.unindent(); 5561 W.startLine() << "}\n"; 5572 DictScope Group(W, "Relocation"); 5573 W.printHex("Offset", Rel.r_offset); 5574 W.printNumber("Type", RelocName, (int)Rel.getType(Obj->isMips64EL())); 5575 W.printString("Symbol", !SymbolName.empty() ? SymbolName : "-"); 5576 W.printHex("Addend", Rel.r_addend); 5578 raw_ostream &OS = W.startLine(); 5579 OS << W.hex(Rel.r_offset) << " " << RelocName << " " 5580 << (!SymbolName.empty() ? SymbolName : "-") << " " << W.hex(Rel.r_addend) 5597 ListScope L(W, "ProgramHeaders"); 5601 DictScope P(W, "ProgramHeader"); 5602 W.printHex("Type", 5605 W.printHex("Offset", Phdr.p_offset); 5606 W.printHex("VirtualAddress", Phdr.p_vaddr); 5607 W.printHex("PhysicalAddress", Phdr.p_paddr); 5608 W.printNumber("FileSize", Phdr.p_filesz); 5609 W.printNumber("MemSize", Phdr.p_memsz); 5610 W.printFlags("Flags", Phdr.p_flags, makeArrayRef(ElfSegmentFlags)); 5611 W.printNumber("Alignment", Phdr.p_align); 5618 ListScope SS(W, "VersionSymbols"); 5629 DictScope S(W, "Symbol"); 5633 W.printNumber("Version", Versym->vs_index & VERSYM_VERSION); 5634 W.printString("Name", FullSymbolName); 5642 ListScope SD(W, "VersionDefinitions"); 5661 DictScope Def(W, "Definition"); 5662 W.printNumber("Version", Verdef->vd_version); 5663 W.printEnum("Flags", Verdef->vd_flags, makeArrayRef(SymVersionFlags)); 5664 W.printNumber("Index", Verdef->vd_ndx); 5665 W.printNumber("Hash", Verdef->vd_hash); 5666 W.printString("Name", StringRef(reinterpret_cast<const char *>( 5679 W.printString("Predecessor", 5690 ListScope SD(W, "VersionRequirements"); 5704 DictScope Entry(W, "Dependency"); 5705 W.printNumber("Version", Verneed->vn_version); 5706 W.printNumber("Count", Verneed->vn_cnt); 5707 W.printString("FileName", 5712 ListScope L(W, "Entries"); 5716 DictScope Entry(W, "Entry"); 5717 W.printNumber("Hash", Vernaux->vna_hash); 5718 W.printEnum("Flags", Vernaux->vna_flags, makeArrayRef(SymVersionFlags)); 5719 W.printNumber("Index", Vernaux->vna_other); 5720 W.printString("Name", 5731 W.startLine() << "Hash Histogram not implemented!\n"; 5736 ListScope L(W, "CGProfile"); 5743 DictScope D(W, "CGProfileEntry"); 5744 W.printNumber( 5749 W.printNumber( 5754 W.printNumber("Weight", CGPE.cgp_weight); 5775 ListScope L(W, "Addrsig"); 5790 W.printNumber("Sym", *NameOrErr, Sym); 5794 W.printNumber("Sym", "<?>", Sym); 5842 ListScope L(W, "Notes"); 5846 W.printHex("Offset", Offset); 5847 W.printHex("Size", Size); 5851 DictScope D2(W, "Note"); 5857 W.printString("Owner", Name); 5858 W.printHex("Data size", Descriptor.size()); 5860 W.printString("Type", getGNUNoteTypeName(Type)); 5862 W.printString("Type", getFreeBSDNoteTypeName(Type)); 5864 W.printString("Type", getAMDNoteTypeName(Type)); 5866 W.printString("Type", getAMDGPUNoteTypeName(Type)); 5872 W.printString("Type", NoteType); 5874 W.printString("Type", 5881 printGNUNoteLLVMStyle<ELFT>(Type, Descriptor, W); 5885 W.printString(N.Type, N.Value); 5889 W.printString(N.Type, N.Value); 5897 printCoreNoteLLVMStyle(*Note, W); 5902 W.printBinaryBlock("Description data", Descriptor); 5911 DictScope D(W, "NoteSection"); 5924 DictScope D(W, "NoteSection"); 5937 ListScope L(W, "LinkerOptions"); 5950 W.printString(Key, Value); 5959 ListScope L(W, "StackSizes"); 5968 DictScope D(W, "Entry"); 5969 W.printString("Function", FuncName); 5970 W.printHex("Size", Size); 5976 W.printHex("Address", Parser.getGotAddress(E)); 5977 W.printNumber("Access", Parser.getGotOffset(E)); 5978 W.printHex("Initial", *E); 5981 DictScope GS(W, Parser.IsStatic ? "Static GOT" : "Primary GOT"); 5983 W.printHex("Canonical gp value", Parser.getGp()); 5985 ListScope RS(W, "Reserved entries"); 5987 DictScope D(W, "Entry"); 5989 W.printString("Purpose", StringRef("Lazy resolver")); 5993 DictScope D(W, "Entry"); 5995 W.printString("Purpose", StringRef("Module pointer (GNU extension)")); 5999 ListScope LS(W, "Local entries"); 6001 DictScope D(W, "Entry"); 6010 ListScope GS(W, "Global entries"); 6012 DictScope D(W, "Entry"); 6017 W.printHex("Value", Sym->st_value); 6018 W.printEnum("Type", Sym->getType(), makeArrayRef(ElfSymbolTypes)); 6025 W.printHex("Section", SectionName, SectionIndex); 6029 W.printNumber("Name", SymName, Sym->st_name); 6033 W.printNumber("Number of TLS and multi-GOT entries", 6040 W.printHex("Address", Parser.getPltAddress(E)); 6041 W.printHex("Initial", *E); 6044 DictScope GS(W, "PLT GOT"); 6047 ListScope RS(W, "Reserved entries"); 6049 DictScope D(W, "Entry"); 6051 W.printString("Purpose", StringRef("PLT lazy resolver")); 6055 DictScope D(W, "Entry"); 6057 W.printString("Purpose", StringRef("Module pointer")); 6061 ListScope LS(W, "Entries"); 6063 DictScope D(W, "Entry"); 6067 W.printHex("Value", Sym->st_value); 6068 W.printEnum("Type", Sym->getType(), makeArrayRef(ElfSymbolTypes)); 6075 W.printHex("Section", SectionName, SectionIndex); 6079 W.printNumber("Name", SymName, Sym->st_name); 6090 W.startLine() << "There is no .MIPS.abiflags section in the file.\n"; 6096 W.startLine() << "The .MIPS.abiflags section has a wrong size.\n"; 6102 raw_ostream &OS = W.getOStream(); 6103 DictScope GS(W, "MIPS ABI Flags"); 6105 W.printNumber("Version", Flags->version); 6106 W.startLine() << "ISA: "; 6112 W.printEnum("ISA Extension", Flags->isa_ext, makeArrayRef(ElfMipsISAExtType)); 6113 W.printFlags("ASEs", Flags->ases, makeArrayRef(ElfMipsASEFlags)); 6114 W.printEnum("FP ABI", Flags->fp_abi, makeArrayRef(ElfMipsFpABIType)); 6115 W.printNumber("GPR size", getMipsRegisterSize(Flags->gpr_size)); 6116 W.printNumber("CPR1 size", getMipsRegisterSize(Flags->cpr1_size)); 6117 W.printNumber("CPR2 size", getMipsRegisterSize(Flags->cpr2_size)); 6118 W.printFlags("Flags 1", Flags->flags1, makeArrayRef(ElfMipsFlags1)); 6119 W.printHex("Flags 2", Flags->flags2);