LLVM: llvm::object::COFFObjectFile Class Reference (original) (raw)
#include "[llvm/Object/COFF.h](Object%5F2COFF%5F8h%5Fsource.html)"
| Public Member Functions |
|
| uintptr_t |
getSymbolTable () const |
| StringRef |
getStringTable () const |
| uint16_t |
getMachine () const |
| uint16_t |
getSizeOfOptionalHeader () const |
| uint16_t |
getCharacteristics () const |
| uint32_t |
getTimeDateStamp () const |
| uint32_t |
getNumberOfSections () const |
| uint32_t |
getPointerToSymbolTable () const |
| uint32_t |
getRawNumberOfSymbols () const |
| uint32_t |
getNumberOfSymbols () const |
| uint32_t |
getStringTableSize () const |
| const export_directory_table_entry * |
getExportTable () const |
| const coff_load_configuration32 * |
getLoadConfig32 () const |
| const coff_load_configuration64 * |
getLoadConfig64 () const |
| const chpe_metadata * |
getCHPEMetadata () const |
| const coff_dynamic_reloc_table * |
getDynamicRelocTable () const |
| StringRef |
getRelocationTypeName (uint16_t Type) const |
| basic_symbol_iterator |
symbol_begin () const override |
| basic_symbol_iterator |
symbol_end () const override |
| section_iterator |
section_begin () const override |
| section_iterator |
section_end () const override |
| bool |
is64Bit () const override |
| const coff_section * |
getCOFFSection (const SectionRef &Section) const |
| COFFSymbolRef |
getCOFFSymbol (const DataRefImpl &Ref) const |
| COFFSymbolRef |
getCOFFSymbol (const SymbolRef &Symbol) const |
| const coff_relocation * |
getCOFFRelocation (const RelocationRef &Reloc) const |
| unsigned |
getSectionID (SectionRef Sec) const |
| unsigned |
getSymbolSectionID (SymbolRef Sym) const |
| uint8_t |
getBytesInAddress () const override |
|
The number of bytes used to represent an address in this object file format. |
| StringRef |
getFileFormatName () const override |
| Triple::ArchType |
getArch () const override |
| Expected< uint64_t > |
getStartAddress () const override |
| Expected< SubtargetFeatures > |
getFeatures () const override |
| std::unique_ptr< MemoryBuffer > |
getHybridObjectView () const |
| import_directory_iterator |
import_directory_begin () const |
| import_directory_iterator |
import_directory_end () const |
| delay_import_directory_iterator |
delay_import_directory_begin () const |
| delay_import_directory_iterator |
delay_import_directory_end () const |
| export_directory_iterator |
export_directory_begin () const |
| export_directory_iterator |
export_directory_end () const |
| base_reloc_iterator |
base_reloc_begin () const |
| base_reloc_iterator |
base_reloc_end () const |
| dynamic_reloc_iterator |
dynamic_reloc_begin () const |
| dynamic_reloc_iterator |
dynamic_reloc_end () const |
| const debug_directory * |
debug_directory_begin () const |
| const debug_directory * |
debug_directory_end () const |
| iterator_range< import_directory_iterator > |
import_directories () const |
| iterator_range< delay_import_directory_iterator > |
delay_import_directories () const |
| iterator_range< export_directory_iterator > |
export_directories () const |
| iterator_range< base_reloc_iterator > |
base_relocs () const |
| iterator_range< dynamic_reloc_iterator > |
dynamic_relocs () const |
| iterator_range< const debug_directory * > |
debug_directories () const |
| const coff_tls_directory32 * |
getTLSDirectory32 () const |
| const coff_tls_directory64 * |
getTLSDirectory64 () const |
| const dos_header * |
getDOSHeader () const |
| const coff_file_header * |
getCOFFHeader () const |
| const coff_bigobj_file_header * |
getCOFFBigObjHeader () const |
| const pe32_header * |
getPE32Header () const |
| const pe32plus_header * |
getPE32PlusHeader () const |
| const data_directory * |
getDataDirectory (uint32_t index) const |
| Expected< const coff_section * > |
getSection (int32_t index) const |
| Expected< COFFSymbolRef > |
getSymbol (uint32_t index) const |
| template<typename T> |
|
| Error |
getAuxSymbol (uint32_t index, const T *&Res) const |
| Expected< StringRef > |
getSymbolName (COFFSymbolRef Symbol) const |
| Expected< StringRef > |
getSymbolName (const coff_symbol_generic *Symbol) const |
| ArrayRef< uint8_t > |
getSymbolAuxData (COFFSymbolRef Symbol) const |
| uint32_t |
getSymbolIndex (COFFSymbolRef Symbol) const |
| size_t |
getSymbolTableEntrySize () const |
| ArrayRef< coff_relocation > |
getRelocations (const coff_section *Sec) const |
| Expected< StringRef > |
getSectionName (const coff_section *Sec) const |
| uint64_t |
getSectionSize (const coff_section *Sec) const |
| Error |
getSectionContents (const coff_section *Sec, ArrayRef< uint8_t > &Res) const |
| uint64_t |
getImageBase () const |
| Error |
getVaPtr (uint64_t VA, uintptr_t &Res) const |
| Error |
getRvaPtr (uint32_t Rva, uintptr_t &Res, const char *ErrorContext=nullptr) const |
| Error |
getRvaAndSizeAsBytes (uint32_t RVA, uint32_t Size, ArrayRef< uint8_t > &Contents, const char *ErrorContext=nullptr) const |
|
Given an RVA base and size, returns a valid array of bytes or an error code if the RVA and size is not contained completely within a valid section. |
| Error |
getHintName (uint32_t Rva, uint16_t &Hint, StringRef &Name) const |
| Error |
getDebugPDBInfo (const debug_directory *DebugDir, const codeview::DebugInfo *&Info, StringRef &PDBFileName) const |
|
Get PDB information out of a codeview debug directory entry. |
| Error |
getDebugPDBInfo (const codeview::DebugInfo *&Info, StringRef &PDBFileName) const |
|
Get PDB information from an executable. |
| bool |
isRelocatableObject () const override |
|
True if this is a relocatable object (.o/.obj). |
| bool |
is64 () const |
| StringRef |
mapDebugSectionName (StringRef Name) const override |
|
Maps a debug section name to a standard DWARF section name. |
| Public Member Functions inherited from llvm::object::ObjectFile |
|
|
ObjectFile ()=delete |
|
ObjectFile (const ObjectFile &other)=delete |
| ObjectFile & |
operator= (const ObjectFile &other)=delete |
| uint64_t |
getCommonSymbolSize (DataRefImpl Symb) const |
| virtual std::vector< SectionRef > |
dynamic_relocation_sections () const |
| symbol_iterator_range |
symbols () const |
| section_iterator_range |
sections () const |
| virtual bool |
hasDebugInfo () const |
| virtual Triple::OSType |
getOS () const |
| virtual std::optional< StringRef > |
tryGetCPUName () const |
| virtual void |
setARMSubArch (Triple &TheTriple) const |
| Triple |
makeTriple () const |
|
Create a triple from the data in this object file. |
| bool |
isReflectionSectionStrippable (llvm::binaryformat::Swift5ReflectionSectionKind ReflectionSectionKind) const |
|
True if the reflection section can be stripped by the linker. |
| Public Member Functions inherited from llvm::object::SymbolicFile |
|
|
SymbolicFile (unsigned int Type, MemoryBufferRef Source) |
|
~SymbolicFile () override |
| basic_symbol_iterator_range |
symbols () const |
| Public Member Functions inherited from llvm::object::Binary |
|
|
Binary ()=delete |
|
Binary (const Binary &other)=delete |
| virtual |
~Binary () |
| virtual Error |
initContent () |
| StringRef |
getData () const |
| StringRef |
getFileName () const |
| MemoryBufferRef |
getMemoryBufferRef () const |
| unsigned int |
getType () const |
| bool |
isObject () const |
| bool |
isSymbolic () const |
| bool |
isArchive () const |
| bool |
isMachOUniversalBinary () const |
| bool |
isTapiUniversal () const |
| bool |
isELF () const |
| bool |
isMachO () const |
| bool |
isCOFF () const |
| bool |
isXCOFF () const |
| bool |
isWasm () const |
| bool |
isOffloadFile () const |
| bool |
isCOFFImportFile () const |
| bool |
isIR () const |
| bool |
isGOFF () const |
| bool |
isMinidump () const |
| bool |
isTapiFile () const |
| bool |
isLittleEndian () const |
| bool |
isWinRes () const |
| bool |
isDXContainer () const |
| Triple::ObjectFormatType |
getTripleObjectFormat () const |
| Static Public Member Functions |
|
| static Expected< std::unique_ptr< COFFObjectFile > > |
create (MemoryBufferRef Object) |
| static bool |
classof (const Binary *v) |
| Static Public Member Functions inherited from llvm::object::ObjectFile |
|
| static Expected< OwningBinary< ObjectFile > > |
createObjectFile (StringRef ObjectPath) |
| static Expected< std::unique_ptr< ObjectFile > > |
createObjectFile (MemoryBufferRef Object, llvm::file_magic Type, bool InitContent=true) |
| static Expected< std::unique_ptr< ObjectFile > > |
createObjectFile (MemoryBufferRef Object) |
| static bool |
classof (const Binary *v) |
| static Expected< std::unique_ptr< COFFObjectFile > > |
createCOFFObjectFile (MemoryBufferRef Object) |
| static Expected< std::unique_ptr< ObjectFile > > |
createXCOFFObjectFile (MemoryBufferRef Object, unsigned FileType) |
| static Expected< std::unique_ptr< ObjectFile > > |
createELFObjectFile (MemoryBufferRef Object, bool InitContent=true) |
| static Expected< std::unique_ptr< MachOObjectFile > > |
createMachOObjectFile (MemoryBufferRef Object, uint32_t UniversalCputype=0, uint32_t UniversalIndex=0, size_t MachOFilesetEntryOffset=0) |
|
Create a MachOObjectFile instance from a given buffer. |
| static Expected< std::unique_ptr< ObjectFile > > |
createGOFFObjectFile (MemoryBufferRef Object) |
| static Expected< std::unique_ptr< WasmObjectFile > > |
createWasmObjectFile (MemoryBufferRef Object) |
| static Expected< std::unique_ptr< DXContainerObjectFile > > |
createDXContainerObjectFile (MemoryBufferRef Object) |
| Static Public Member Functions inherited from llvm::object::SymbolicFile |
|
| static Expected< std::unique_ptr< SymbolicFile > > |
createSymbolicFile (MemoryBufferRef Object, llvm::file_magic Type, LLVMContext *Context, bool InitContent=true) |
| static Expected< std::unique_ptr< SymbolicFile > > |
createSymbolicFile (MemoryBufferRef Object) |
| static bool |
classof (const Binary *v) |
| static bool |
isSymbolicFile (file_magic Type, const LLVMContext *Context) |
| Static Public Member Functions inherited from llvm::object::Binary |
|
| static Error |
checkOffset (MemoryBufferRef M, uintptr_t Addr, const uint64_t Size) |
| Additional Inherited Members |
|
| Public Types inherited from llvm::object::ObjectFile |
|
| using |
symbol_iterator_range = iterator_range<symbol_iterator> |
| using |
section_iterator_range = iterator_range<section_iterator> |
| Public Types inherited from llvm::object::SymbolicFile |
|
| using |
basic_symbol_iterator_range = iterator_range<basic_symbol_iterator> |
| Protected Types inherited from llvm::object::Binary |
|
| enum |
{ ID_Archive, ID_MachOUniversalBinary, ID_COFFImportFile, ID_IR, ID_TapiUniversal, ID_TapiFile, ID_Minidump, ID_WinRes, ID_Offload, ID_StartObjects, ID_COFF, ID_XCOFF32, ID_XCOFF64, ID_ELF32L, ID_ELF32B, ID_ELF64L, ID_ELF64B, ID_MachO32L, ID_MachO32B, ID_MachO64L, ID_MachO64B, ID_GOFF, ID_Wasm, ID_DXContainer, ID_EndObjects } |
| Static Protected Member Functions inherited from llvm::object::Binary |
|
| static unsigned int |
getELFType (bool isLE, bool is64Bits) |
| static unsigned int |
getMachOType (bool isLE, bool is64Bits) |
| Protected Attributes inherited from llvm::object::Binary |
|
| MemoryBufferRef |
Data |
Definition at line 880 of file COFF.h.
◆ base_reloc_begin()
◆ base_reloc_end()
◆ base_relocs()
◆ classof()
| bool llvm::object::COFFObjectFile::classof ( const Binary * v) |
inlinestatic |
◆ create()
◆ debug_directories()
◆ debug_directory_begin()
◆ debug_directory_end()
◆ delay_import_directories()
◆ delay_import_directory_begin()
◆ delay_import_directory_end()
◆ dynamic_reloc_begin()
◆ dynamic_reloc_end()
◆ dynamic_relocs()
◆ export_directories()
◆ export_directory_begin()
◆ export_directory_end()
◆ getArch()
◆ getAuxSymbol()
◆ getBytesInAddress()
| uint8_t COFFObjectFile::getBytesInAddress ( ) const |
overridevirtual |
◆ getCharacteristics()
| uint16_t llvm::object::COFFObjectFile::getCharacteristics ( ) const |
inline |
◆ getCOFFRelocation()
◆ getCOFFSection()
◆ getCOFFSymbol() [1/2]
Definition at line 1354 of file COFFObjectFile.cpp.
References llvm_unreachable, and llvm::Ref.
Referenced by getCOFFSymbol(), getCommonSymbolSizeImpl(), getSymbolAddress(), getSymbolAlignment(), getSymbolFlags(), getSymbolName(), getSymbolSection(), getSymbolSectionID(), getSymbolType(), and getSymbolValueImpl().
◆ getCOFFSymbol() [2/2]
◆ getCommonSymbolSizeImpl()
| uint64_t COFFObjectFile::getCommonSymbolSizeImpl ( DataRefImpl Symb) const |
overrideprotectedvirtual |
◆ getDataDirectory()
◆ getDebugPDBInfo() [1/2]
◆ getDebugPDBInfo() [2/2]
Get PDB information out of a codeview debug directory entry.
Definition at line 545 of file COFFObjectFile.cpp.
References llvm::object::debug_directory::AddressOfRawData, llvm::createStringError(), llvm::ArrayRef< T >::data(), llvm::ArrayRef< T >::drop_front(), getRvaAndSizeAsBytes(), llvm::object::parse_failed, llvm::ArrayRef< T >::size(), llvm::object::debug_directory::SizeOfData, llvm::StringRef::split(), and llvm::Error::success().
Referenced by getDebugPDBInfo(), and getPdbPathFromExe().
| const dos_header * llvm::object::COFFObjectFile::getDOSHeader ( ) const |
inline |
◆ getDynamicRelocTable()
◆ getExportTable()
◆ getFeatures()
| StringRef COFFObjectFile::getFileFormatName ( ) const |
overridevirtual |
◆ getHintName()
◆ getHybridObjectView()
| std::unique_ptr< MemoryBuffer > COFFObjectFile::getHybridObjectView |
( |
) |
const |
Definition at line 1515 of file COFFObjectFile.cpp.
References llvm::object::ObjectFile::base(), llvm::cantFail(), llvm::object::Binary::Data, dynamic_relocs(), getMachine(), llvm::WritableMemoryBuffer::getNewUninitMemBuffer(), getRvaPtr(), llvm::COFF::IMAGE_DVRT_ARM64X_FIXUP_TYPE_DELTA, llvm::COFF::IMAGE_DVRT_ARM64X_FIXUP_TYPE_VALUE, llvm::COFF::IMAGE_DVRT_ARM64X_FIXUP_TYPE_ZEROFILL, llvm::COFF::IMAGE_DYNAMIC_RELOCATION_ARM64X, and llvm::COFF::IMAGE_FILE_MACHINE_ARM64X.
◆ getImageBase()
| uint64_t COFFObjectFile::getImageBase |
( |
) |
const |
◆ getLoadConfig32()
◆ getLoadConfig64()
◆ getMachine()
| uint16_t llvm::object::COFFObjectFile::getMachine ( ) const |
inline |
◆ getNumberOfSections()
| uint32_t llvm::object::COFFObjectFile::getNumberOfSections ( ) const |
inline |
◆ getNumberOfSymbols()
| uint32_t llvm::object::COFFObjectFile::getNumberOfSymbols ( ) const |
inline |
| const pe32_header * llvm::object::COFFObjectFile::getPE32Header ( ) const |
inline |
◆ getPointerToSymbolTable()
| uint32_t llvm::object::COFFObjectFile::getPointerToSymbolTable ( ) const |
inline |
◆ getRawNumberOfSymbols()
| uint32_t llvm::object::COFFObjectFile::getRawNumberOfSymbols ( ) const |
inline |
◆ getRelocationOffset()
◆ getRelocations()
◆ getRelocationSymbol()
◆ getRelocationType()
◆ getRelocationTypeName() [1/2]
◆ getRelocationTypeName() [2/2]
◆ getRvaAndSizeAsBytes()
◆ getRvaPtr()
Definition at line 472 of file COFFObjectFile.cpp.
References llvm::object::ObjectFile::base(), llvm::createStringError(), getCOFFSection(), llvm::make_error(), llvm::Offset, llvm::object::parse_failed, llvm::object::ObjectFile::SectionRef, llvm::object::ObjectFile::sections(), and llvm::Error::success().
Referenced by getHintName(), getHybridObjectView(), and getVaPtr().
◆ getSection()
◆ getSectionAddress()
◆ getSectionAlignment()
◆ getSectionContents() [1/2]
◆ getSectionContents() [2/2]
◆ getSectionID()
◆ getSectionIndex()
◆ getSectionName() [1/2]
◆ getSectionName() [2/2]
◆ getSectionSize() [1/2]
◆ getSectionSize() [2/2]
| uint16_t llvm::object::COFFObjectFile::getSizeOfOptionalHeader ( ) const |
inline |
◆ getStartAddress()
◆ getStringTable()
| StringRef llvm::object::COFFObjectFile::getStringTable ( ) const |
inline |
Definition at line 943 of file COFF.h.
◆ getStringTableSize()
| uint32_t llvm::object::COFFObjectFile::getStringTableSize ( ) const |
inline |
◆ getSymbol()
◆ getSymbolAddress()
◆ getSymbolAlignment()
◆ getSymbolAuxData()
◆ getSymbolFlags()
Implements llvm::object::SymbolicFile.
Definition at line 209 of file COFFObjectFile.cpp.
References getCOFFSymbol(), llvm::object::COFFSymbolRef::getSectionNumber(), llvm::object::COFFSymbolRef::getWeakExternal(), llvm::COFF::IMAGE_SYM_ABSOLUTE, llvm::COFF::IMAGE_WEAK_EXTERN_SEARCH_ALIAS, llvm::object::COFFSymbolRef::isCommon(), llvm::object::COFFSymbolRef::isExternal(), llvm::object::COFFSymbolRef::isFileRecord(), llvm::object::COFFSymbolRef::isSectionDefinition(), llvm::object::COFFSymbolRef::isUndefined(), llvm::object::COFFSymbolRef::isWeakExternal(), llvm::Ref, llvm::object::BasicSymbolRef::SF_Absolute, llvm::object::BasicSymbolRef::SF_Common, llvm::object::BasicSymbolRef::SF_FormatSpecific, llvm::object::BasicSymbolRef::SF_Global, llvm::object::BasicSymbolRef::SF_None, llvm::object::BasicSymbolRef::SF_Undefined, and llvm::object::BasicSymbolRef::SF_Weak.
◆ getSymbolIndex()
◆ getSymbolName() [1/3]
◆ getSymbolName() [2/3]
◆ getSymbolName() [3/3]
◆ getSymbolSection()
◆ getSymbolSectionID()
◆ getSymbolTable()
| uintptr_t llvm::object::COFFObjectFile::getSymbolTable ( ) const |
inline |
◆ getSymbolTableEntrySize()
| size_t llvm::object::COFFObjectFile::getSymbolTableEntrySize ( ) const |
inline |
◆ getSymbolType()
Implements llvm::object::ObjectFile.
Definition at line 186 of file COFFObjectFile.cpp.
References getCOFFSymbol(), llvm::object::COFFSymbolRef::getComplexType(), llvm::object::COFFSymbolRef::getSectionNumber(), llvm::COFF::IMAGE_SYM_DEBUG, llvm::COFF::IMAGE_SYM_DTYPE_FUNCTION, llvm::object::COFFSymbolRef::isAnyUndefined(), llvm::object::COFFSymbolRef::isCommon(), llvm::object::COFFSymbolRef::isFileRecord(), llvm::COFF::isReservedSectionNumber(), llvm::object::COFFSymbolRef::isSectionDefinition(), llvm::Ref, llvm::object::SymbolRef::ST_Data, llvm::object::SymbolRef::ST_Debug, llvm::object::SymbolRef::ST_File, llvm::object::SymbolRef::ST_Function, llvm::object::SymbolRef::ST_Other, and llvm::object::SymbolRef::ST_Unknown.
◆ getSymbolValueImpl()
◆ getTimeDateStamp()
| uint32_t llvm::object::COFFObjectFile::getTimeDateStamp ( ) const |
inline |
◆ getTLSDirectory32()
◆ getTLSDirectory64()
◆ getVaPtr()
| Error COFFObjectFile::getVaPtr |
( |
uint64_t |
VA, |
| uintptr_t & |
Res ) const |
|
|
◆ import_directories()
◆ import_directory_begin()
◆ import_directory_end()
◆ is64()
| bool llvm::object::COFFObjectFile::is64 ( ) const |
inline |
◆ is64Bit()
| bool llvm::object::COFFObjectFile::is64Bit ( ) const |
inlineoverridevirtual |
◆ isDebugSection()
| bool COFFObjectFile::isDebugSection ( DataRefImpl Sec) const |
overrideprotectedvirtual |
◆ isRelocatableObject()
| bool COFFObjectFile::isRelocatableObject ( ) const |
overridevirtual |
◆ isSectionBSS()
| bool COFFObjectFile::isSectionBSS ( DataRefImpl Sec) const |
overrideprotectedvirtual |
◆ isSectionCompressed()
| bool COFFObjectFile::isSectionCompressed ( DataRefImpl Sec) const |
overrideprotectedvirtual |
◆ isSectionData()
| bool COFFObjectFile::isSectionData ( DataRefImpl Sec) const |
overrideprotectedvirtual |
◆ isSectionText()
| bool COFFObjectFile::isSectionText ( DataRefImpl Sec) const |
overrideprotectedvirtual |
◆ isSectionVirtual()
| bool COFFObjectFile::isSectionVirtual ( DataRefImpl Sec) const |
overrideprotectedvirtual |
◆ mapDebugSectionName()
◆ moveRelocationNext()
| void COFFObjectFile::moveRelocationNext ( DataRefImpl & Rel) const |
overrideprotectedvirtual |
◆ moveSectionNext()
| void COFFObjectFile::moveSectionNext ( DataRefImpl & Sec) const |
overrideprotectedvirtual |
◆ moveSymbolNext()
| void COFFObjectFile::moveSymbolNext ( DataRefImpl & Symb) const |
overrideprotectedvirtual |
◆ section_begin()
◆ section_end()
◆ section_rel_begin()
◆ section_rel_end()
◆ symbol_begin()
◆ symbol_end()
◆ ExportDirectoryEntryRef
◆ ImportDirectoryEntryRef
The documentation for this class was generated from the following files: