Lines Matching +full:assoc +full:- +full:weight

1 //===-- COFFDumper.cpp - COFF-specific dumper -------------------*- C++ -*-===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
10 /// This file implements the COFF-specific dumper for llvm-readobj.
12 //===----------------------------------------------------------------------===//
18 #include "llvm-readobj.h"
84 : ObjDumper(Writer, Obj->getFileName()), Obj(Obj), Writer(Writer), in COFFDumper()
205 Sec = Obj->getCOFFSection(SR); in COFFObjectDumpDelegate()
214 return Data.data() - SectionContents.bytes_begin(); in getRecordOffset()
262 auto SymI = Obj->symbol_end(); in resolveSymbol()
271 if (SymI == Obj->symbol_end()) in resolveSymbol()
301 uint64_t Offset = ptrdiff_t(reinterpret_cast<const char *>(RelocPtr) - in resolveSymbolName()
326 uint64_t OffsetStart = Block.data() - SectionContents.data(); in printBinaryBlockWithRelocs()
332 const coff_section *Section = Obj->getCOFFSection(Sec); in printBinaryBlockWithRelocs()
634 ArrayRef<uint8_t> AuxData = Obj->getSymbolAuxData(Symbol); in getSymbolAuxData()
635 AuxData = AuxData.slice(AuxSymbolIdx * Obj->getSymbolTableEntrySize()); in getSymbolAuxData()
645 for (const SectionRef &S : Obj->sections()) { in cacheRelocations()
646 const coff_section *Section = Obj->getCOFFSection(S); in cacheRelocations()
659 const data_directory *Data = Obj->getDataDirectory(Index); in printDataDirectory()
662 W.printHex(FieldName + "RVA", Data->RelativeVirtualAddress); in printDataDirectory()
663 W.printHex(FieldName + "Size", Data->Size); in printDataDirectory()
667 time_t TDS = Obj->getTimeDateStamp(); in printFileHeaders()
669 strftime(FormattedTime, 20, "%Y-%m-%d %H:%M:%S", gmtime(&TDS)); in printFileHeaders()
673 W.printEnum("Machine", Obj->getMachine(), ArrayRef(ImageFileMachineType)); in printFileHeaders()
674 W.printNumber("SectionCount", Obj->getNumberOfSections()); in printFileHeaders()
675 W.printHex ("TimeDateStamp", FormattedTime, Obj->getTimeDateStamp()); in printFileHeaders()
676 W.printHex ("PointerToSymbolTable", Obj->getPointerToSymbolTable()); in printFileHeaders()
677 W.printNumber("SymbolCount", Obj->getNumberOfSymbols()); in printFileHeaders()
678 W.printNumber("StringTableSize", Obj->getStringTableSize()); in printFileHeaders()
679 W.printNumber("OptionalHeaderSize", Obj->getSizeOfOptionalHeader()); in printFileHeaders()
680 W.printFlags("Characteristics", Obj->getCharacteristics(), in printFileHeaders()
686 if (const pe32_header *PEHeader = Obj->getPE32Header()) in printFileHeaders()
689 if (const pe32plus_header *PEPlusHeader = Obj->getPE32PlusHeader()) in printFileHeaders()
692 if (const dos_header *DH = Obj->getDOSHeader()) in printFileHeaders()
698 W.printString("Magic", StringRef(DH->Magic, sizeof(DH->Magic))); in printDOSHeader()
699 W.printNumber("UsedBytesInTheLastPage", DH->UsedBytesInTheLastPage); in printDOSHeader()
700 W.printNumber("FileSizeInPages", DH->FileSizeInPages); in printDOSHeader()
701 W.printNumber("NumberOfRelocationItems", DH->NumberOfRelocationItems); in printDOSHeader()
702 W.printNumber("HeaderSizeInParagraphs", DH->HeaderSizeInParagraphs); in printDOSHeader()
703 W.printNumber("MinimumExtraParagraphs", DH->MinimumExtraParagraphs); in printDOSHeader()
704 W.printNumber("MaximumExtraParagraphs", DH->MaximumExtraParagraphs); in printDOSHeader()
705 W.printNumber("InitialRelativeSS", DH->InitialRelativeSS); in printDOSHeader()
706 W.printNumber("InitialSP", DH->InitialSP); in printDOSHeader()
707 W.printNumber("Checksum", DH->Checksum); in printDOSHeader()
708 W.printNumber("InitialIP", DH->InitialIP); in printDOSHeader()
709 W.printNumber("InitialRelativeCS", DH->InitialRelativeCS); in printDOSHeader()
710 W.printNumber("AddressOfRelocationTable", DH->AddressOfRelocationTable); in printDOSHeader()
711 W.printNumber("OverlayNumber", DH->OverlayNumber); in printDOSHeader()
712 W.printNumber("OEMid", DH->OEMid); in printDOSHeader()
713 W.printNumber("OEMinfo", DH->OEMinfo); in printDOSHeader()
714 W.printNumber("AddressOfNewExeHeader", DH->AddressOfNewExeHeader); in printDOSHeader()
720 W.printHex ("Magic", Hdr->Magic); in printPEHeader()
721 W.printNumber("MajorLinkerVersion", Hdr->MajorLinkerVersion); in printPEHeader()
722 W.printNumber("MinorLinkerVersion", Hdr->MinorLinkerVersion); in printPEHeader()
723 W.printNumber("SizeOfCode", Hdr->SizeOfCode); in printPEHeader()
724 W.printNumber("SizeOfInitializedData", Hdr->SizeOfInitializedData); in printPEHeader()
725 W.printNumber("SizeOfUninitializedData", Hdr->SizeOfUninitializedData); in printPEHeader()
726 W.printHex ("AddressOfEntryPoint", Hdr->AddressOfEntryPoint); in printPEHeader()
727 W.printHex ("BaseOfCode", Hdr->BaseOfCode); in printPEHeader()
729 W.printHex ("ImageBase", Hdr->ImageBase); in printPEHeader()
730 W.printNumber("SectionAlignment", Hdr->SectionAlignment); in printPEHeader()
731 W.printNumber("FileAlignment", Hdr->FileAlignment); in printPEHeader()
733 Hdr->MajorOperatingSystemVersion); in printPEHeader()
735 Hdr->MinorOperatingSystemVersion); in printPEHeader()
736 W.printNumber("MajorImageVersion", Hdr->MajorImageVersion); in printPEHeader()
737 W.printNumber("MinorImageVersion", Hdr->MinorImageVersion); in printPEHeader()
738 W.printNumber("MajorSubsystemVersion", Hdr->MajorSubsystemVersion); in printPEHeader()
739 W.printNumber("MinorSubsystemVersion", Hdr->MinorSubsystemVersion); in printPEHeader()
740 W.printNumber("SizeOfImage", Hdr->SizeOfImage); in printPEHeader()
741 W.printNumber("SizeOfHeaders", Hdr->SizeOfHeaders); in printPEHeader()
742 W.printHex ("CheckSum", Hdr->CheckSum); in printPEHeader()
743 W.printEnum("Subsystem", Hdr->Subsystem, ArrayRef(PEWindowsSubsystem)); in printPEHeader()
744 W.printFlags("Characteristics", Hdr->DLLCharacteristics, in printPEHeader()
746 W.printNumber("SizeOfStackReserve", Hdr->SizeOfStackReserve); in printPEHeader()
747 W.printNumber("SizeOfStackCommit", Hdr->SizeOfStackCommit); in printPEHeader()
748 W.printNumber("SizeOfHeapReserve", Hdr->SizeOfHeapReserve); in printPEHeader()
749 W.printNumber("SizeOfHeapCommit", Hdr->SizeOfHeapCommit); in printPEHeader()
750 W.printNumber("NumberOfRvaAndSize", Hdr->NumberOfRvaAndSize); in printPEHeader()
752 if (Hdr->NumberOfRvaAndSize > 0) { in printPEHeader()
761 for (uint32_t i = 0; i < Hdr->NumberOfRvaAndSize; ++i) in printPEHeader()
771 for (const debug_directory &D : Obj->debug_directories()) { in printCOFFDebugDirectory()
774 strftime(FormattedTime, 20, "%Y-%m-%d %H:%M:%S", gmtime(&TDS)); in printCOFFDebugDirectory()
791 if (Error E = Obj->getDebugPDBInfo(&D, DebugInfo, PDBFileName)) in printCOFFDebugDirectory()
792 reportError(std::move(E), Obj->getFileName()); in printCOFFDebugDirectory()
795 W.printHex("PDBSignature", DebugInfo->Signature.CVSignature); in printCOFFDebugDirectory()
796 if (DebugInfo->Signature.CVSignature == OMF::Signature::PDB70) { in printCOFFDebugDirectory()
799 formatv("{0}", fmt_guid(DebugInfo->PDB70.Signature)).str()); in printCOFFDebugDirectory()
800 W.printNumber("PDBAge", DebugInfo->PDB70.Age); in printCOFFDebugDirectory()
807 if (Error E = Obj->getRvaAndSizeAsBytes(D.AddressOfRawData, in printCOFFDebugDirectory()
809 reportError(std::move(E), Obj->getFileName()); in printCOFFDebugDirectory()
825 if (Error E = Obj->getVaPtr(TableVA, TableStart)) in printRVATable()
826 reportError(std::move(E), Obj->getFileName()); in printRVATable()
828 Obj->getVaPtr(TableVA + Count * EntrySize - 1, TableEnd)) in printRVATable()
829 reportError(std::move(E), Obj->getFileName()); in printRVATable()
834 OS << W.hex(Obj->getImageBase() + RVA); in printRVATable()
843 if (Obj->is64()) in printCOFFLoadConfig()
844 printCOFFLoadConfig(Obj->getLoadConfig64(), Tables); in printCOFFLoadConfig()
846 printCOFFLoadConfig(Obj->getLoadConfig32(), Tables); in printCOFFLoadConfig()
848 if (auto CHPE = Obj->getCHPEMetadata()) { in printCOFFLoadConfig()
850 W.printHex("Version", CHPE->Version); in printCOFFLoadConfig()
852 if (CHPE->CodeMapCount) { in printCOFFLoadConfig()
856 if (Error E = Obj->getRvaPtr(CHPE->CodeMap, CodeMapInt)) in printCOFFLoadConfig()
857 reportError(std::move(E), Obj->getFileName()); in printCOFFLoadConfig()
859 for (uint32_t i = 0; i < CHPE->CodeMapCount; i++) { in printCOFFLoadConfig()
861 W.startLine() << W.hex(Start) << " - " in printCOFFLoadConfig()
879 W.printNumber("CodeMap", CHPE->CodeMap); in printCOFFLoadConfig()
882 if (CHPE->CodeRangesToEntryPointsCount) { in printCOFFLoadConfig()
887 Obj->getRvaPtr(CHPE->CodeRangesToEntryPoints, CodeRangesInt)) in printCOFFLoadConfig()
888 reportError(std::move(E), Obj->getFileName()); in printCOFFLoadConfig()
891 for (uint32_t i = 0; i < CHPE->CodeRangesToEntryPointsCount; i++) { in printCOFFLoadConfig()
892 W.startLine() << W.hex(CodeRanges[i].StartRva) << " - " in printCOFFLoadConfig()
893 << W.hex(CodeRanges[i].EndRva) << " -> " in printCOFFLoadConfig()
897 W.printNumber("CodeRangesToEntryPoints", CHPE->CodeRangesToEntryPoints); in printCOFFLoadConfig()
900 if (CHPE->RedirectionMetadataCount) { in printCOFFLoadConfig()
904 if (Error E = Obj->getRvaPtr(CHPE->RedirectionMetadata, RedirMetadataInt)) in printCOFFLoadConfig()
905 reportError(std::move(E), Obj->getFileName()); in printCOFFLoadConfig()
908 for (uint32_t i = 0; i < CHPE->RedirectionMetadataCount; i++) { in printCOFFLoadConfig()
909 W.startLine() << W.hex(RedirMetadata[i].Source) << " -> " in printCOFFLoadConfig()
913 W.printNumber("RedirectionMetadata", CHPE->RedirectionMetadata); in printCOFFLoadConfig()
917 CHPE->__os_arm64x_dispatch_call_no_redirect); in printCOFFLoadConfig()
918 W.printHex("__os_arm64x_dispatch_ret", CHPE->__os_arm64x_dispatch_ret); in printCOFFLoadConfig()
919 W.printHex("__os_arm64x_dispatch_call", CHPE->__os_arm64x_dispatch_call); in printCOFFLoadConfig()
920 W.printHex("__os_arm64x_dispatch_icall", CHPE->__os_arm64x_dispatch_icall); in printCOFFLoadConfig()
922 CHPE->__os_arm64x_dispatch_icall_cfg); in printCOFFLoadConfig()
923 W.printHex("AlternateEntryPoint", CHPE->AlternateEntryPoint); in printCOFFLoadConfig()
924 W.printHex("AuxiliaryIAT", CHPE->AuxiliaryIAT); in printCOFFLoadConfig()
926 CHPE->GetX64InformationFunctionPointer); in printCOFFLoadConfig()
928 CHPE->SetX64InformationFunctionPointer); in printCOFFLoadConfig()
929 W.printHex("ExtraRFETable", CHPE->ExtraRFETable); in printCOFFLoadConfig()
930 W.printHex("ExtraRFETableSize", CHPE->ExtraRFETableSize); in printCOFFLoadConfig()
931 W.printHex("__os_arm64x_dispatch_fptr", CHPE->__os_arm64x_dispatch_fptr); in printCOFFLoadConfig()
932 W.printHex("AuxiliaryIATCopy", CHPE->AuxiliaryIATCopy); in printCOFFLoadConfig()
946 // The stride gives the number of extra bytes in addition to the 4-byte in printCOFFLoadConfig()
947 // RVA of each entry in the table. As of writing only a 1-byte extra flag in printCOFFLoadConfig()
984 time_t TDS = Conf->TimeDateStamp; in printCOFFLoadConfig()
985 strftime(FormattedTime, 20, "%Y-%m-%d %H:%M:%S", gmtime(&TDS)); in printCOFFLoadConfig()
986 W.printHex("Size", Conf->Size); in printCOFFLoadConfig()
990 if (Conf->Size < offsetof(T, SEHandlerTable)) in printCOFFLoadConfig()
993 W.printHex("MajorVersion", Conf->MajorVersion); in printCOFFLoadConfig()
994 W.printHex("MinorVersion", Conf->MinorVersion); in printCOFFLoadConfig()
995 W.printHex("GlobalFlagsClear", Conf->GlobalFlagsClear); in printCOFFLoadConfig()
996 W.printHex("GlobalFlagsSet", Conf->GlobalFlagsSet); in printCOFFLoadConfig()
998 Conf->CriticalSectionDefaultTimeout); in printCOFFLoadConfig()
999 W.printHex("DeCommitFreeBlockThreshold", Conf->DeCommitFreeBlockThreshold); in printCOFFLoadConfig()
1000 W.printHex("DeCommitTotalFreeThreshold", Conf->DeCommitTotalFreeThreshold); in printCOFFLoadConfig()
1001 W.printHex("LockPrefixTable", Conf->LockPrefixTable); in printCOFFLoadConfig()
1002 W.printHex("MaximumAllocationSize", Conf->MaximumAllocationSize); in printCOFFLoadConfig()
1003 W.printHex("VirtualMemoryThreshold", Conf->VirtualMemoryThreshold); in printCOFFLoadConfig()
1004 W.printHex("ProcessHeapFlags", Conf->ProcessHeapFlags); in printCOFFLoadConfig()
1005 W.printHex("ProcessAffinityMask", Conf->ProcessAffinityMask); in printCOFFLoadConfig()
1006 W.printHex("CSDVersion", Conf->CSDVersion); in printCOFFLoadConfig()
1007 W.printHex("DependentLoadFlags", Conf->DependentLoadFlags); in printCOFFLoadConfig()
1008 W.printHex("EditList", Conf->EditList); in printCOFFLoadConfig()
1009 W.printHex("SecurityCookie", Conf->SecurityCookie); in printCOFFLoadConfig()
1012 if (Conf->Size < offsetof(T, GuardCFCheckFunction)) in printCOFFLoadConfig()
1014 W.printHex("SEHandlerTable", Conf->SEHandlerTable); in printCOFFLoadConfig()
1015 W.printNumber("SEHandlerCount", Conf->SEHandlerCount); in printCOFFLoadConfig()
1017 Tables.SEHTableVA = Conf->SEHandlerTable; in printCOFFLoadConfig()
1018 Tables.SEHTableCount = Conf->SEHandlerCount; in printCOFFLoadConfig()
1021 if (Conf->Size < offsetof(T, CodeIntegrity)) in printCOFFLoadConfig()
1023 W.printHex("GuardCFCheckFunction", Conf->GuardCFCheckFunction); in printCOFFLoadConfig()
1024 W.printHex("GuardCFCheckDispatch", Conf->GuardCFCheckDispatch); in printCOFFLoadConfig()
1025 W.printHex("GuardCFFunctionTable", Conf->GuardCFFunctionTable); in printCOFFLoadConfig()
1026 W.printNumber("GuardCFFunctionCount", Conf->GuardCFFunctionCount); in printCOFFLoadConfig()
1027 W.printFlags("GuardFlags", Conf->GuardFlags, ArrayRef(PELoadConfigGuardFlags), in printCOFFLoadConfig()
1030 Tables.GuardFidTableVA = Conf->GuardCFFunctionTable; in printCOFFLoadConfig()
1031 Tables.GuardFidTableCount = Conf->GuardCFFunctionCount; in printCOFFLoadConfig()
1032 Tables.GuardFlags = Conf->GuardFlags; in printCOFFLoadConfig()
1035 if (Conf->Size < offsetof(T, Reserved3)) in printCOFFLoadConfig()
1038 Conf->GuardAddressTakenIatEntryTable); in printCOFFLoadConfig()
1040 Conf->GuardAddressTakenIatEntryCount); in printCOFFLoadConfig()
1041 W.printHex("GuardLongJumpTargetTable", Conf->GuardLongJumpTargetTable); in printCOFFLoadConfig()
1042 W.printNumber("GuardLongJumpTargetCount", Conf->GuardLongJumpTargetCount); in printCOFFLoadConfig()
1043 W.printHex("DynamicValueRelocTable", Conf->DynamicValueRelocTable); in printCOFFLoadConfig()
1044 W.printHex("CHPEMetadataPointer", Conf->CHPEMetadataPointer); in printCOFFLoadConfig()
1045 W.printHex("GuardRFFailureRoutine", Conf->GuardRFFailureRoutine); in printCOFFLoadConfig()
1047 Conf->GuardRFFailureRoutineFunctionPointer); in printCOFFLoadConfig()
1049 Conf->DynamicValueRelocTableOffset); in printCOFFLoadConfig()
1051 Conf->DynamicValueRelocTableSection); in printCOFFLoadConfig()
1053 Conf->GuardRFVerifyStackPointerFunctionPointer); in printCOFFLoadConfig()
1054 W.printHex("HotPatchTableOffset", Conf->HotPatchTableOffset); in printCOFFLoadConfig()
1056 Tables.GuardIatTableVA = Conf->GuardAddressTakenIatEntryTable; in printCOFFLoadConfig()
1057 Tables.GuardIatTableCount = Conf->GuardAddressTakenIatEntryCount; in printCOFFLoadConfig()
1059 Tables.GuardLJmpTableVA = Conf->GuardLongJumpTargetTable; in printCOFFLoadConfig()
1060 Tables.GuardLJmpTableCount = Conf->GuardLongJumpTargetCount; in printCOFFLoadConfig()
1063 if (Conf->Size < sizeof(T)) in printCOFFLoadConfig()
1065 W.printHex("EnclaveConfigurationPointer", Conf->EnclaveConfigurationPointer); in printCOFFLoadConfig()
1066 W.printHex("VolatileMetadataPointer", Conf->VolatileMetadataPointer); in printCOFFLoadConfig()
1067 W.printHex("GuardEHContinuationTable", Conf->GuardEHContinuationTable); in printCOFFLoadConfig()
1068 W.printNumber("GuardEHContinuationCount", Conf->GuardEHContinuationCount); in printCOFFLoadConfig()
1070 Tables.GuardEHContTableVA = Conf->GuardEHContinuationTable; in printCOFFLoadConfig()
1071 Tables.GuardEHContTableCount = Conf->GuardEHContinuationCount; in printCOFFLoadConfig()
1075 W.printHex("BaseOfData", Hdr->BaseOfData); in printBaseOfDataField()
1082 for (const SectionRef &S : Obj->sections()) { in printCodeViewDebugInfo()
1083 StringRef SectionName = unwrapOrError(Obj->getFileName(), S.getName()); in printCodeViewDebugInfo()
1089 for (const SectionRef &S : Obj->sections()) { in printCodeViewDebugInfo()
1090 StringRef SectionName = unwrapOrError(Obj->getFileName(), S.getName()); in printCodeViewDebugInfo()
1104 reportError(std::move(E), Obj->getFileName()); in initializeFileAndStringTables()
1106 reportError(std::move(E), Obj->getFileName()); in initializeFileAndStringTables()
1110 reportError(std::move(E), Obj->getFileName()); in initializeFileAndStringTables()
1116 reportError(std::move(E), Obj->getFileName()); in initializeFileAndStringTables()
1120 reportError(std::move(E), Obj->getFileName()); in initializeFileAndStringTables()
1127 if (Error E = Reader.skip(PaddedSize - SubSectionSize)) in initializeFileAndStringTables()
1128 reportError(std::move(E), Obj->getFileName()); in initializeFileAndStringTables()
1135 unwrapOrError(Obj->getFileName(), Section.getContents()); in printCodeViewSymbolSection()
1143 W.printNumber("Section", SectionName, Obj->getSectionID(Section)); in printCodeViewSymbolSection()
1147 reportError(std::move(E), Obj->getFileName()); in printCodeViewSymbolSection()
1152 Obj->getFileName()); in printCodeViewSymbolSection()
1163 reportError(std::move(E), Obj->getFileName()); in printCodeViewSymbolSection()
1165 reportError(std::move(E), Obj->getFileName()); in printCodeViewSymbolSection()
1179 Obj->getFileName()); in printCodeViewSymbolSection()
1184 size_t SectionOffset = Data.data() - SectionContents.data(); in printCodeViewSymbolSection()
1189 Obj->getFileName()); in printCodeViewSymbolSection()
1220 Obj->getFileName()); in printCodeViewSymbolSection()
1225 if (std::error_code EC = resolveSymbolName(Obj->getCOFFSection(Section), in printCodeViewSymbolSection()
1227 reportError(errorCodeToError(EC), Obj->getFileName()); in printCodeViewSymbolSection()
1233 Obj->getFileName()); in printCodeViewSymbolSection()
1247 reportError(std::move(E), Obj->getFileName()); in printCodeViewSymbolSection()
1251 resolveSymbolName(Obj->getCOFFSection(Section), SectionContents, in printCodeViewSymbolSection()
1253 reportError(errorCodeToError(EC), Obj->getFileName()); in printCodeViewSymbolSection()
1260 Obj->getFileName(), CVStringTable.getString(FD.FrameFunc)); in printCodeViewSymbolSection()
1313 reportError(std::move(E), Obj->getFileName()); in printCodeViewSymbolSection()
1315 W.printHex("Flags", LineInfo.header()->Flags); in printCodeViewSymbolSection()
1316 W.printHex("CodeSize", LineInfo.header()->CodeSize); in printCodeViewSymbolSection()
1323 if (Line.Offset >= LineInfo.header()->CodeSize) { in printCodeViewSymbolSection()
1325 Obj->getFileName()); in printCodeViewSymbolSection()
1364 reportError(std::move(E), Obj->getFileName()); in printCodeViewSymbolsSubsection()
1369 reportError(std::move(E), Obj->getFileName()); in printCodeViewSymbolsSubsection()
1379 reportError(std::move(E), Obj->getFileName()); in printCodeViewFileChecksums()
1385 Obj->getFileName(), CVStringTable.getString(FC.FileNameOffset)); in printCodeViewFileChecksums()
1399 reportError(std::move(E), Obj->getFileName()); in printCodeViewInlineeLines()
1403 printTypeIndex("Inlinee", Line.Header->Inlinee); in printCodeViewInlineeLines()
1404 printFileNameForOffset("FileID", Line.Header->FileID); in printCodeViewInlineeLines()
1405 W.printNumber("SourceLineNum", Line.Header->SourceLineNum); in printCodeViewInlineeLines()
1421 Obj->getFileName()); in getFileNameForFileOffset()
1428 Obj->getFileName()); in getFileNameForFileOffset()
1430 return unwrapOrError(Obj->getFileName(), in getFileNameForFileOffset()
1431 CVStringTable.getString(Iter->FileNameOffset)); in getFileNameForFileOffset()
1443 for (const SectionRef &S : Obj->sections()) { in mergeCodeViewTypes()
1444 StringRef SectionName = unwrapOrError(Obj->getFileName(), S.getName()); in mergeCodeViewTypes()
1446 StringRef Data = unwrapOrError(Obj->getFileName(), S.getContents()); in mergeCodeViewTypes()
1449 reportError(std::move(E), Obj->getFileName()); in mergeCodeViewTypes()
1453 Obj->getFileName()); in mergeCodeViewTypes()
1461 Obj->getFileName()); in mergeCodeViewTypes()
1471 return reportError(std::move(E), Obj->getFileName()); in mergeCodeViewTypes()
1475 return reportError(std::move(E), Obj->getFileName()); in mergeCodeViewTypes()
1484 W.printNumber("Section", SectionName, Obj->getSectionID(Section)); in printCodeViewTypeSection()
1486 StringRef Data = unwrapOrError(Obj->getFileName(), Section.getContents()); in printCodeViewTypeSection()
1492 reportError(std::move(E), Obj->getFileName()); in printCodeViewTypeSection()
1497 Obj->getFileName()); in printCodeViewTypeSection()
1503 reportError(std::move(E), Obj->getFileName()); in printCodeViewTypeSection()
1511 for (const SectionRef &Sec : Obj->sections()) { in printSectionHeaders()
1513 const coff_section *Section = Obj->getCOFFSection(Sec); in printSectionHeaders()
1515 StringRef Name = unwrapOrError(Obj->getFileName(), Sec.getName()); in printSectionHeaders()
1519 W.printBinary("Name", Name, Section->Name); in printSectionHeaders()
1520 W.printHex ("VirtualSize", Section->VirtualSize); in printSectionHeaders()
1521 W.printHex ("VirtualAddress", Section->VirtualAddress); in printSectionHeaders()
1522 W.printNumber("RawDataSize", Section->SizeOfRawData); in printSectionHeaders()
1523 W.printHex ("PointerToRawData", Section->PointerToRawData); in printSectionHeaders()
1524 W.printHex ("PointerToRelocations", Section->PointerToRelocations); in printSectionHeaders()
1525 W.printHex ("PointerToLineNumbers", Section->PointerToLinenumbers); in printSectionHeaders()
1526 W.printNumber("RelocationCount", Section->NumberOfRelocations); in printSectionHeaders()
1527 W.printNumber("LineNumberCount", Section->NumberOfLinenumbers); in printSectionHeaders()
1528 W.printFlags("Characteristics", Section->Characteristics, in printSectionHeaders()
1540 for (const SymbolRef &Symbol : Obj->symbols()) { in printSectionHeaders()
1549 !(Section->Characteristics & COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA)) { in printSectionHeaders()
1550 StringRef Data = unwrapOrError(Obj->getFileName(), Sec.getContents()); in printSectionHeaders()
1560 for (const SectionRef &Section : Obj->sections()) { in printRelocations()
1562 StringRef Name = unwrapOrError(Obj->getFileName(), Section.getName()); in printRelocations()
1584 uint64_t Offset = Reloc.getOffset() - Bias; in printRelocation()
1590 int64_t SymbolIndex = -1; in printRelocation()
1591 if (Symbol != Obj->symbol_end()) { in printRelocation()
1592 Expected<StringRef> SymbolNameOrErr = Symbol->getName(); in printRelocation()
1594 reportError(SymbolNameOrErr.takeError(), Obj->getFileName()); in printRelocation()
1597 SymbolIndex = Obj->getSymbolIndex(Obj->getCOFFSymbol(*Symbol)); in printRelocation()
1604 W.printString("Symbol", SymbolName.empty() ? "-" : SymbolName); in printRelocation()
1610 << " " << (SymbolName.empty() ? "-" : SymbolName) in printRelocation()
1619 for (const SymbolRef &Symbol : Obj->symbols()) in printSymbols()
1629 return Obj->getSectionName(Section); in getSectionName()
1642 COFFSymbolRef Symbol = Obj->getCOFFSymbol(Sym); in printSymbol()
1644 Obj->getSection(Symbol.getSectionNumber()); in printSymbol()
1655 if (Expected<StringRef> SymNameOrErr = Obj->getSymbolName(Symbol)) in printSymbol()
1676 reportError(errorCodeToError(EC), Obj->getFileName()); in printSymbol()
1679 W.printNumber("TagIndex", Aux->TagIndex); in printSymbol()
1680 W.printNumber("TotalSize", Aux->TotalSize); in printSymbol()
1681 W.printHex("PointerToLineNumber", Aux->PointerToLinenumber); in printSymbol()
1682 W.printHex("PointerToNextFunction", Aux->PointerToNextFunction); in printSymbol()
1687 reportError(errorCodeToError(EC), Obj->getFileName()); in printSymbol()
1690 W.printNumber("Linked", getSymbolName(Aux->TagIndex), Aux->TagIndex); in printSymbol()
1691 W.printEnum("Search", Aux->Characteristics, in printSymbol()
1697 reportError(errorCodeToError(EC), Obj->getFileName()); in printSymbol()
1701 Obj->getSymbolTableEntrySize()); in printSymbol()
1707 reportError(errorCodeToError(EC), Obj->getFileName()); in printSymbol()
1709 int32_t AuxNumber = Aux->getNumber(Symbol.isBigObj()); in printSymbol()
1712 W.printNumber("Length", Aux->Length); in printSymbol()
1713 W.printNumber("RelocationCount", Aux->NumberOfRelocations); in printSymbol()
1714 W.printNumber("LineNumberCount", Aux->NumberOfLinenumbers); in printSymbol()
1715 W.printHex("Checksum", Aux->CheckSum); in printSymbol()
1717 W.printEnum("Selection", Aux->Selection, ArrayRef(ImageCOMDATSelect)); in printSymbol()
1719 if (Section && Section->Characteristics & COFF::IMAGE_SCN_LNK_COMDAT in printSymbol()
1720 && Aux->Selection == COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE) { in printSymbol()
1721 Expected<const coff_section *> Assoc = Obj->getSection(AuxNumber); in printSymbol() local
1722 if (!Assoc) in printSymbol()
1723 reportError(Assoc.takeError(), Obj->getFileName()); in printSymbol()
1724 Expected<StringRef> AssocName = getSectionName(Obj, AuxNumber, *Assoc); in printSymbol()
1726 reportError(AssocName.takeError(), Obj->getFileName()); in printSymbol()
1733 reportError(errorCodeToError(EC), Obj->getFileName()); in printSymbol()
1736 W.printNumber("AuxType", Aux->AuxType); in printSymbol()
1737 W.printNumber("Reserved", Aux->Reserved); in printSymbol()
1738 W.printNumber("SymbolTableIndex", getSymbolName(Aux->SymbolTableIndex), in printSymbol()
1739 Aux->SymbolTableIndex); in printSymbol()
1749 switch (Obj->getMachine()) { in printUnwindInfo()
1754 SymbolRef &Symbol, void *user_data) -> std::error_code { in printUnwindInfo()
1756 return Dumper->resolveSymbol(Section, Offset, Symbol); in printUnwindInfo()
1766 ARM::WinEH::Decoder Decoder(W, Obj->getMachine() != in printUnwindInfo()
1773 W.printEnum("unsupported Image Machine", Obj->getMachine(), in printUnwindInfo()
1785 for (const ImportDirectoryEntryRef &DirRef : Obj->import_directories()) { in printNeededLibraries()
1803 reportError(std::move(E), Obj->getFileName()); in printImportedSymbols()
1806 reportError(std::move(E), Obj->getFileName()); in printImportedSymbols()
1819 reportError(std::move(E), Obj->getFileName()); in printDelayImportedSymbols()
1823 reportError(std::move(E), Obj->getFileName()); in printDelayImportedSymbols()
1828 reportError(std::move(E), Obj->getFileName()); in printDelayImportedSymbols()
1835 for (const ImportDirectoryEntryRef &I : Obj->import_directories()) { in printCOFFImports()
1839 reportError(std::move(E), Obj->getFileName()); in printCOFFImports()
1843 reportError(std::move(E), Obj->getFileName()); in printCOFFImports()
1847 reportError(std::move(E), Obj->getFileName()); in printCOFFImports()
1858 for (const DelayImportDirectoryEntryRef &I : Obj->delay_import_directories()) { in printCOFFImports()
1862 reportError(std::move(E), Obj->getFileName()); in printCOFFImports()
1866 reportError(std::move(E), Obj->getFileName()); in printCOFFImports()
1867 W.printHex("Attributes", Table->Attributes); in printCOFFImports()
1868 W.printHex("ModuleHandle", Table->ModuleHandle); in printCOFFImports()
1869 W.printHex("ImportAddressTable", Table->DelayImportAddressTable); in printCOFFImports()
1870 W.printHex("ImportNameTable", Table->DelayImportNameTable); in printCOFFImports()
1871 W.printHex("BoundDelayImportTable", Table->BoundDelayImportTable); in printCOFFImports()
1872 W.printHex("UnloadDelayImportTable", Table->UnloadDelayImportTable); in printCOFFImports()
1878 for (const ExportDirectoryEntryRef &Exp : Obj->export_directories()) { in printCOFFExports()
1886 reportError(std::move(E), Obj->getFileName()); in printCOFFExports()
1888 reportError(std::move(E), Obj->getFileName()); in printCOFFExports()
1890 reportError(std::move(E), Obj->getFileName()); in printCOFFExports()
1897 reportError(std::move(E), Obj->getFileName()); in printCOFFExports()
1902 reportError(std::move(E), Obj->getFileName()); in printCOFFExports()
1909 for (const SectionRef &Section : Obj->sections()) { in printCOFFDirectives()
1910 StringRef Name = unwrapOrError(Obj->getFileName(), Section.getName()); in printCOFFDirectives()
1915 unwrapOrError(Obj->getFileName(), Section.getContents()); in printCOFFDirectives()
1935 for (const BaseRelocRef &I : Obj->base_relocs()) { in printCOFFBaseReloc()
1939 reportError(std::move(E), Obj->getFileName()); in printCOFFBaseReloc()
1941 reportError(std::move(E), Obj->getFileName()); in printCOFFBaseReloc()
1950 for (const SectionRef &S : Obj->sections()) { in printCOFFResources()
1951 StringRef Name = unwrapOrError(Obj->getFileName(), S.getName()); in printCOFFResources()
1955 StringRef Ref = unwrapOrError(Obj->getFileName(), S.getContents()); in printCOFFResources()
1961 reportError(std::move(E), Obj->getFileName()); in printCOFFResources()
1962 auto &BaseTable = unwrapOrError(Obj->getFileName(), RSF.getBaseTable()); in printCOFFResources()
1966 Obj->getCOFFSection(S)->PointerToRawData); in printCOFFResources()
1982 auto Entry = unwrapOrError(Obj->getFileName(), RSF.getTableEntry(Table, i)); in countTotalTableEntries()
1990 unwrapOrError(Obj->getFileName(), RSF.getEntrySubDir(Entry)); in countTotalTableEntries()
2009 auto Entry = unwrapOrError(Obj->getFileName(), RSF.getTableEntry(Table, i)); in printResourceDirectoryTable()
2015 unwrapOrError(Obj->getFileName(), RSF.getEntryNameString(Entry)); in printResourceDirectoryTable()
2027 Obj->getFileName()); in printResourceDirectoryTable()
2048 unwrapOrError(Obj->getFileName(), RSF.getEntrySubDir(Entry)); in printResourceDirectoryTable()
2054 strftime(FormattedTime, 20, "%Y-%m-%d %H:%M:%S", gmtime(&TDS)); in printResourceDirectoryTable()
2061 unwrapOrError(Obj->getFileName(), RSF.getEntryData(Entry)); in printResourceDirectoryTable()
2067 unwrapOrError(Obj->getFileName(), RSF.getContents(DataEntry)); in printResourceDirectoryTable()
2075 for (auto Sec : Obj->sections()) { in printStackMap()
2092 unwrapOrError(Obj->getFileName(), StackMapSection.getContents()); in printStackMap()
2096 if (Obj->isLittleEndian()) in printStackMap()
2106 for (auto Sec : Obj->sections()) { in printAddrsig()
2123 unwrapOrError(Obj->getFileName(), AddrsigSection.getContents()); in printAddrsig()
2135 reportError(createError(Err), Obj->getFileName()); in printAddrsig()
2144 for (SectionRef Sec : Obj->sections()) { in printCGProfile()
2145 StringRef Name = unwrapOrError(Obj->getFileName(), Sec.getName()); in printCGProfile()
2146 if (Name == ".llvm.call-graph-profile") { in printCGProfile()
2156 unwrapOrError(Obj->getFileName(), CGProfileSection.getContents()); in printCGProfile()
2164 reportError(std::move(Err), Obj->getFileName()); in printCGProfile()
2166 reportError(std::move(Err), Obj->getFileName()); in printCGProfile()
2168 reportError(std::move(Err), Obj->getFileName()); in printCGProfile()
2173 W.printNumber("Weight", Count); in printCGProfile()
2178 Expected<COFFSymbolRef> Sym = Obj->getSymbol(Index); in getSymbolName()
2180 reportError(Sym.takeError(), Obj->getFileName()); in getSymbolName()
2182 Expected<StringRef> SymName = Obj->getSymbolName(*Sym); in getSymbolName()
2184 reportError(SymName.takeError(), Obj->getFileName()); in getSymbolName()
2215 if (Obj->is64()) in printCOFFTLSDirectory()
2216 printCOFFTLSDirectory(Obj->getTLSDirectory64()); in printCOFFTLSDirectory()
2218 printCOFFTLSDirectory(Obj->getTLSDirectory32()); in printCOFFTLSDirectory()
2228 W.printHex("StartAddressOfRawData", TlsTable->StartAddressOfRawData); in printCOFFTLSDirectory()
2229 W.printHex("EndAddressOfRawData", TlsTable->EndAddressOfRawData); in printCOFFTLSDirectory()
2230 W.printHex("AddressOfIndex", TlsTable->AddressOfIndex); in printCOFFTLSDirectory()
2231 W.printHex("AddressOfCallBacks", TlsTable->AddressOfCallBacks); in printCOFFTLSDirectory()
2232 W.printHex("SizeOfZeroFill", TlsTable->SizeOfZeroFill); in printCOFFTLSDirectory()
2233 W.printFlags("Characteristics", TlsTable->Characteristics, in printCOFFTLSDirectory()