Lines Matching refs:Obj

262 static Expected<std::unique_ptr<Dumper>> createDumper(const ObjectFile &Obj) {  in createDumper()  argument
263 if (const auto *O = dyn_cast<COFFObjectFile>(&Obj)) in createDumper()
265 if (const auto *O = dyn_cast<ELFObjectFileBase>(&Obj)) in createDumper()
267 if (const auto *O = dyn_cast<MachOObjectFile>(&Obj)) in createDumper()
269 if (const auto *O = dyn_cast<WasmObjectFile>(&Obj)) in createDumper()
271 if (const auto *O = dyn_cast<XCOFFObjectFile>(&Obj)) in createDumper()
397 static const Target *getTarget(const ObjectFile *Obj) { in getTarget() argument
401 TheTriple = Obj->makeTriple(); in getTarget()
404 auto Arch = Obj->getArch(); in getTarget()
406 Obj->setARMSubArch(TheTriple); in getTarget()
414 reportError(Obj->getFileName(), "can't find target: " + Error); in getTarget()
428 const ObjectFile *Obj = Rel.getObject(); in getRelocationValueString() local
429 if (auto *ELF = dyn_cast<ELFObjectFileBase>(Obj)) in getRelocationValueString()
431 if (auto *COFF = dyn_cast<COFFObjectFile>(Obj)) in getRelocationValueString()
433 if (auto *Wasm = dyn_cast<WasmObjectFile>(Obj)) in getRelocationValueString()
435 if (auto *MachO = dyn_cast<MachOObjectFile>(Obj)) in getRelocationValueString()
437 if (auto *XCOFF = dyn_cast<XCOFFObjectFile>(Obj)) in getRelocationValueString()
505 static bool isAArch64Elf(const ObjectFile &Obj) { in isAArch64Elf() argument
506 const auto *Elf = dyn_cast<ELFObjectFileBase>(&Obj); in isAArch64Elf()
510 static bool isArmElf(const ObjectFile &Obj) { in isArmElf() argument
511 const auto *Elf = dyn_cast<ELFObjectFileBase>(&Obj); in isArmElf()
515 static bool isCSKYElf(const ObjectFile &Obj) { in isCSKYElf() argument
516 const auto *Elf = dyn_cast<ELFObjectFileBase>(&Obj); in isCSKYElf()
520 static bool hasMappingSymbols(const ObjectFile &Obj) { in hasMappingSymbols() argument
521 return isArmElf(Obj) || isAArch64Elf(Obj) || isCSKYElf(Obj) ; in hasMappingSymbols()
867 DisassemblerTarget(const Target *TheTarget, ObjectFile &Obj,
880 DisassemblerTarget::DisassemblerTarget(const Target *TheTarget, ObjectFile &Obj, in DisassemblerTarget() argument
887 reportError(Obj.getFileName(), "no register info for target " + TripleName); in DisassemblerTarget()
892 reportError(Obj.getFileName(), "no assembly info for target " + TripleName); in DisassemblerTarget()
897 reportError(Obj.getFileName(), in DisassemblerTarget()
901 reportError(Obj.getFileName(), in DisassemblerTarget()
914 reportError(Obj.getFileName(), "no disassembler for target " + TripleName); in DisassemblerTarget()
923 reportError(Obj.getFileName(), in DisassemblerTarget()
957 static uint8_t getElfSymbolType(const ObjectFile &Obj, const SymbolRef &Sym) { in getElfSymbolType() argument
958 assert(Obj.isELF()); in getElfSymbolType()
959 if (auto *Elf32LEObj = dyn_cast<ELF32LEObjectFile>(&Obj)) in getElfSymbolType()
961 Obj.getFileName()) in getElfSymbolType()
963 if (auto *Elf64LEObj = dyn_cast<ELF64LEObjectFile>(&Obj)) in getElfSymbolType()
965 Obj.getFileName()) in getElfSymbolType()
967 if (auto *Elf32BEObj = dyn_cast<ELF32BEObjectFile>(&Obj)) in getElfSymbolType()
969 Obj.getFileName()) in getElfSymbolType()
971 if (auto *Elf64BEObj = cast<ELF64BEObjectFile>(&Obj)) in getElfSymbolType()
973 Obj.getFileName()) in getElfSymbolType()
980 addDynamicElfSymbols(const ELFObjectFile<ELFT> &Obj, in addDynamicElfSymbols() argument
982 for (auto Symbol : Obj.getDynamicSymbolIterators()) { in addDynamicElfSymbols()
987 uint64_t Address = unwrapOrError(Symbol.getAddress(), Obj.getFileName()); in addDynamicElfSymbols()
991 Address = unwrapOrError(Obj.getSymbol(Symbol.getRawDataRefImpl()), in addDynamicElfSymbols()
992 Obj.getFileName()) in addDynamicElfSymbols()
995 StringRef Name = unwrapOrError(Symbol.getName(), Obj.getFileName()); in addDynamicElfSymbols()
1000 unwrapOrError(Symbol.getSection(), Obj.getFileName()); in addDynamicElfSymbols()
1001 if (SecI == Obj.section_end()) in addDynamicElfSymbols()
1009 addDynamicElfSymbols(const ELFObjectFileBase &Obj, in addDynamicElfSymbols() argument
1011 if (auto *Elf32LEObj = dyn_cast<ELF32LEObjectFile>(&Obj)) in addDynamicElfSymbols()
1013 else if (auto *Elf64LEObj = dyn_cast<ELF64LEObjectFile>(&Obj)) in addDynamicElfSymbols()
1015 else if (auto *Elf32BEObj = dyn_cast<ELF32BEObjectFile>(&Obj)) in addDynamicElfSymbols()
1017 else if (auto *Elf64BEObj = cast<ELF64BEObjectFile>(&Obj)) in addDynamicElfSymbols()
1023 static std::optional<SectionRef> getWasmCodeSection(const WasmObjectFile &Obj) { in getWasmCodeSection() argument
1024 for (auto SecI : Obj.sections()) { in getWasmCodeSection()
1025 const WasmSection &Section = Obj.getWasmSection(SecI); in getWasmCodeSection()
1033 addMissingWasmCodeSymbols(const WasmObjectFile &Obj, in addMissingWasmCodeSymbols() argument
1035 std::optional<SectionRef> Section = getWasmCodeSection(Obj); in addMissingWasmCodeSymbols()
1044 for (const wasm::WasmFunction &Function : Obj.functions()) { in addMissingWasmCodeSymbols()
1060 static void addPltEntries(const ObjectFile &Obj, in addPltEntries() argument
1063 auto *ElfObj = dyn_cast<ELFObjectFileBase>(&Obj); in addPltEntries()
1067 for (SectionRef Section : Obj.sections()) { in addPltEntries()
1078 uint8_t SymbolType = getElfSymbolType(Obj, Symbol); in addPltEntries()
1091 Obj.getFileName()); in addPltEntries()
1116 getRelocsMap(object::ObjectFile const &Obj) { in getRelocsMap() argument
1119 for (SectionRef Sec : Obj.sections()) { in getRelocsMap()
1123 reportError(Obj.getFileName(), in getRelocsMap()
1129 if (Relocated == Obj.section_end() || !checkSectionFilter(*Relocated).Keep) in getRelocsMap()
1145 const ObjectFile *Obj = Section.getObject(); in shouldAdjustVA() local
1146 if (Obj->isELF()) in shouldAdjustVA()
1167 uint64_t End, const ObjectFile &Obj, in dumpARMELFData() argument
1172 Obj.isLittleEndian() ? llvm::endianness::little : llvm::endianness::big; in dumpARMELFData()
1230 SymbolInfoTy objdump::createSymbolInfo(const ObjectFile &Obj, in createSymbolInfo() argument
1233 const StringRef FileName = Obj.getFileName(); in createSymbolInfo()
1237 if (Obj.isXCOFF() && (SymbolDescription || TracebackTable)) { in createSymbolInfo()
1238 const auto &XCOFFObj = cast<XCOFFObjectFile>(Obj); in createSymbolInfo()
1246 } else if (Obj.isXCOFF()) { in createSymbolInfo()
1252 Obj.isELF() ? getElfSymbolType(Obj, Symbol) : (uint8_t)ELF::STT_NOTYPE; in createSymbolInfo()
1257 static SymbolInfoTy createDummySymbolInfo(const ObjectFile &Obj, in createDummySymbolInfo() argument
1260 if (Obj.isXCOFF() && (SymbolDescription || TracebackTable)) in createDummySymbolInfo()
1486 static void createFakeELFSections(ObjectFile &Obj) { in createFakeELFSections() argument
1487 assert(Obj.isELF()); in createFakeELFSections()
1488 if (auto *Elf32LEObj = dyn_cast<ELF32LEObjectFile>(&Obj)) in createFakeELFSections()
1490 else if (auto *Elf64LEObj = dyn_cast<ELF64LEObjectFile>(&Obj)) in createFakeELFSections()
1492 else if (auto *Elf32BEObj = dyn_cast<ELF32BEObjectFile>(&Obj)) in createFakeELFSections()
1494 else if (auto *Elf64BEObj = cast<ELF64BEObjectFile>(&Obj)) in createFakeELFSections()
1503 fetchBinaryByBuildID(const ObjectFile &Obj) { in fetchBinaryByBuildID() argument
1504 object::BuildIDRef BuildID = getBuildID(&Obj); in fetchBinaryByBuildID()
1519 disassembleObject(ObjectFile &Obj, const ObjectFile &DbgObj, in disassembleObject() argument
1528 if (isArmElf(Obj)) { in disassembleObject()
1531 } else if (const auto *COFFObj = dyn_cast<COFFObjectFile>(&Obj)) { in disassembleObject()
1552 if (InlineRelocs || Obj.isXCOFF()) in disassembleObject()
1553 RelocMap = getRelocsMap(Obj); in disassembleObject()
1554 bool Is64Bits = Obj.getBytesInAddress() > 4; in disassembleObject()
1561 const StringRef FileName = Obj.getFileName(); in disassembleObject()
1562 const MachOObjectFile *MachO = dyn_cast<const MachOObjectFile>(&Obj); in disassembleObject()
1563 for (const SymbolRef &Symbol : Obj.symbols()) { in disassembleObject()
1569 if (NameOrErr->empty() && !(Obj.isXCOFF() && SymbolDescription)) in disassembleObject()
1572 if (Obj.isELF() && in disassembleObject()
1581 if (getElfSymbolType(Obj, Symbol) != ELF::STT_SECTION && in disassembleObject()
1582 hasMappingSymbols(Obj)) { in disassembleObject()
1584 if (SecI != Obj.section_end()) { in disassembleObject()
1593 createSymbolInfo(Obj, Symbol, /*MappingSymbol=*/true)); in disassembleObject()
1618 if (SecI != Obj.section_end()) in disassembleObject()
1619 AllSymbols[*SecI].push_back(createSymbolInfo(Obj, Symbol)); in disassembleObject()
1621 AbsoluteSymbols.push_back(createSymbolInfo(Obj, Symbol)); in disassembleObject()
1624 if (AllSymbols.empty() && Obj.isELF()) in disassembleObject()
1625 addDynamicElfSymbols(cast<ELFObjectFileBase>(Obj), AllSymbols); in disassembleObject()
1627 if (Obj.isWasm()) in disassembleObject()
1628 addMissingWasmCodeSymbols(cast<WasmObjectFile>(Obj), AllSymbols); in disassembleObject()
1630 if (Obj.isELF() && Obj.sections().empty()) in disassembleObject()
1631 createFakeELFSections(Obj); in disassembleObject()
1635 addPltEntries(Obj, AllSymbols, Saver); in disassembleObject()
1642 for (SectionRef Sec : Obj.sections()) in disassembleObject()
1652 if (const auto *COFFObj = dyn_cast<COFFObjectFile>(&Obj)) { in disassembleObject()
1656 reportError(std::move(E), Obj.getFileName()); in disassembleObject()
1662 reportError(std::move(E), Obj.getFileName()); in disassembleObject()
1701 if (const auto *Elf = dyn_cast<ELFObjectFileBase>(&Obj)) { in disassembleObject()
1705 reportWarning(toString(BBAddrMapsOrErr.takeError()), Obj.getFileName()); in disassembleObject()
1720 if (SymbolizeOperands && !Obj.isRelocatableObject()) in disassembleObject()
1724 if (InlineRelocs && BTFParser::hasBTFSections(Obj)) { in disassembleObject()
1729 if (Error E = BTF->parse(Obj, Opts)) in disassembleObject()
1733 for (const SectionRef &Section : ToolSectionFilter(Obj)) { in disassembleObject()
1745 if (SymbolizeOperands && Obj.isRelocatableObject()) in disassembleObject()
1754 unwrapOrError(Section.getContents(), Obj.getFileName())); in disassembleObject()
1757 if (Obj.isELF() && Obj.getArch() == Triple::amdgcn) { in disassembleObject()
1764 StringRef SectionName = unwrapOrError(Section.getName(), Obj.getFileName()); in disassembleObject()
1780 Obj, SectionAddr, SectionName, in disassembleObject()
1782 if (Obj.isXCOFF()) in disassembleObject()
1798 uint64_t RelAdjustment = Obj.isRelocatableObject() ? 0 : SectionAddr; in disassembleObject()
1857 if (Obj.isELF() && !DisassembleAll && Section.isText()) { in disassembleObject()
1945 if (Obj.isXCOFF() && SymbolDescription) { in disassembleObject()
2029 Obj.isXCOFF() && Section.isText() && TracebackTable && in disassembleObject()
2108 Size = dumpARMELFData(SectionAddr, Index, End, Obj, Bytes, in disassembleObject()
2134 *DT->SubtargetInfo, cast<XCOFFObjectFile>(&Obj)); in disassembleObject()
2172 "", *DT->SubtargetInfo, &SP, Obj.getFileName(), &Rels, LVP); in disassembleObject()
2216 if (!Obj.isRelocatableObject()) { in disassembleObject()
2276 if (Obj.isXCOFF() && findRel()) { in disassembleObject()
2281 if (Obj.is64Bit()) { in disassembleObject()
2363 if (InlineRelocs && Obj.getArch() != Triple::hexagon) { in disassembleObject()
2366 if (RelCur->getSymbol() != Obj.symbol_end()) { in disassembleObject()
2369 if (SymSI && *SymSI != Obj.section_end() && in disassembleObject()
2374 printRelocation(FOS, Obj.getFileName(), *RelCur, in disassembleObject()
2391 static void disassembleObject(ObjectFile *Obj, bool InlineRelocs) { in disassembleObject() argument
2395 if (Obj->symbols().empty()) { in disassembleObject()
2397 fetchBinaryByBuildID(*Obj)) { in disassembleObject()
2400 (!O->sections().empty() && Obj->sections().empty())) { in disassembleObject()
2402 Obj = O; in disassembleObject()
2408 const Target *TheTarget = getTarget(Obj); in disassembleObject()
2411 Expected<SubtargetFeatures> FeaturesValue = Obj->getFeatures(); in disassembleObject()
2413 reportError(FeaturesValue.takeError(), Obj->getFileName()); in disassembleObject()
2418 } else if (MCPU.empty() && Obj->getArch() == llvm::Triple::aarch64) { in disassembleObject()
2423 MCPU = Obj->tryGetCPUName().value_or("").str(); in disassembleObject()
2425 if (isArmElf(*Obj)) { in disassembleObject()
2437 const auto *Elf32BE = dyn_cast<ELF32BEObjectFile>(Obj); in disassembleObject()
2448 DisassemblerTarget PrimaryTarget(TheTarget, *Obj, TripleName, MCPU, Features); in disassembleObject()
2456 if (isArmElf(*Obj)) { in disassembleObject()
2464 } else if (const auto *COFFObj = dyn_cast<COFFObjectFile>(Obj)) { in disassembleObject()
2476 SecondaryTarget.emplace(X64Target, *Obj, X64Triple.getTriple(), "", in disassembleObject()
2479 reportWarning(Error, Obj->getFileName()); in disassembleObject()
2484 const ObjectFile *DbgObj = Obj; in disassembleObject()
2485 if (!FetchedBinary.getBinary() && !Obj->hasDebugInfo()) { in disassembleObject()
2487 fetchBinaryByBuildID(*Obj)) { in disassembleObject()
2501 if (const MachOObjectFile *MachOOF = dyn_cast<MachOObjectFile>(&*Obj)) { in disassembleObject()
2502 DbgObj = objdump::getMachODSymObject(MachOOF, Obj->getFileName(), in disassembleObject()
2513 reportError(Obj->getFileName(), in disassembleObject()
2516 disassembleObject(*Obj, *DbgObj, PrimaryTarget, SecondaryTarget, SP, in disassembleObject()
2574 static bool shouldDisplayLMA(const ObjectFile &Obj) { in shouldDisplayLMA() argument
2575 if (!Obj.isELF()) in shouldDisplayLMA()
2577 for (const SectionRef &S : ToolSectionFilter(Obj)) in shouldDisplayLMA()
2583 static size_t getMaxSectionNameWidth(const ObjectFile &Obj) { in getMaxSectionNameWidth() argument
2586 for (const SectionRef &Section : ToolSectionFilter(Obj)) { in getMaxSectionNameWidth()
2587 StringRef Name = unwrapOrError(Section.getName(), Obj.getFileName()); in getMaxSectionNameWidth()
2593 void objdump::printSectionHeaders(ObjectFile &Obj) { in printSectionHeaders() argument
2594 if (Obj.isELF() && Obj.sections().empty()) in printSectionHeaders()
2595 createFakeELFSections(Obj); in printSectionHeaders()
2597 size_t NameWidth = getMaxSectionNameWidth(Obj); in printSectionHeaders()
2598 size_t AddressWidth = 2 * Obj.getBytesInAddress(); in printSectionHeaders()
2599 bool HasLMAColumn = shouldDisplayLMA(Obj); in printSectionHeaders()
2610 for (const SectionRef &Section : ToolSectionFilter(Obj, &Idx)) { in printSectionHeaders()
2611 StringRef Name = unwrapOrError(Section.getName(), Obj.getFileName()); in printSectionHeaders()
2639 void objdump::printSectionContents(const ObjectFile *Obj) { in printSectionContents() argument
2640 const MachOObjectFile *MachO = dyn_cast<const MachOObjectFile>(Obj); in printSectionContents()
2642 for (const SectionRef &Section : ToolSectionFilter(*Obj)) { in printSectionContents()
2643 StringRef Name = unwrapOrError(Section.getName(), Obj->getFileName()); in printSectionContents()
2661 StringRef Contents = unwrapOrError(Section.getContents(), Obj->getFileName()); in printSectionContents()
2927 static void printRawClangAST(const ObjectFile *Obj) { in printRawClangAST() argument
2938 if (Obj->isCOFF()) { in printRawClangAST()
2943 for (auto Sec : ToolSectionFilter(*Obj)) { in printRawClangAST()
2959 unwrapOrError(ClangASTSection->getContents(), Obj->getFileName()); in printRawClangAST()
2963 static void printFaultMaps(const ObjectFile *Obj) { in printFaultMaps() argument
2966 if (Obj->isELF()) { in printFaultMaps()
2968 } else if (Obj->isMachO()) { in printFaultMaps()
2979 for (auto Sec : ToolSectionFilter(*Obj)) { in printFaultMaps()
3000 unwrapOrError(FaultMapSection->getContents(), Obj->getFileName()); in printFaultMaps()
3073 static bool shouldWarnForInvalidStartStopAddress(ObjectFile *Obj) { in shouldWarnForInvalidStartStopAddress() argument
3074 if (const auto *Elf = dyn_cast<ELFObjectFileBase>(Obj)) { in shouldWarnForInvalidStartStopAddress()
3081 static void checkForInvalidStartStopAddress(ObjectFile *Obj, in checkForInvalidStartStopAddress() argument
3083 if (!shouldWarnForInvalidStartStopAddress(Obj)) in checkForInvalidStartStopAddress()
3086 for (const SectionRef &Section : Obj->sections()) in checkForInvalidStartStopAddress()
3097 Obj->getFileName()); in checkForInvalidStartStopAddress()
3101 Obj->getFileName()); in checkForInvalidStartStopAddress()
3106 Obj->getFileName()); in checkForInvalidStartStopAddress()