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)
Protected Member Functions
void moveSymbolNext (DataRefImpl &Symb) const override
Expected< StringRef > getSymbolName (DataRefImpl Symb) const override
Expected< uint64_t > getSymbolAddress (DataRefImpl Symb) const override
uint32_t getSymbolAlignment (DataRefImpl Symb) const override
uint64_t getSymbolValueImpl (DataRefImpl Symb) const override
uint64_t getCommonSymbolSizeImpl (DataRefImpl Symb) const override
Expected< uint32_t > getSymbolFlags (DataRefImpl Symb) const override
Expected< SymbolRef::Type > getSymbolType (DataRefImpl Symb) const override
Expected< section_iterator > getSymbolSection (DataRefImpl Symb) const override
void moveSectionNext (DataRefImpl &Sec) const override
Expected< StringRef > getSectionName (DataRefImpl Sec) const override
uint64_t getSectionAddress (DataRefImpl Sec) const override
uint64_t getSectionIndex (DataRefImpl Sec) const override
uint64_t getSectionSize (DataRefImpl Sec) const override
Expected< ArrayRef< uint8_t > > getSectionContents (DataRefImpl Sec) const override
uint64_t getSectionAlignment (DataRefImpl Sec) const override
bool isSectionCompressed (DataRefImpl Sec) const override
bool isSectionText (DataRefImpl Sec) const override
bool isSectionData (DataRefImpl Sec) const override
bool isSectionBSS (DataRefImpl Sec) const override
bool isSectionVirtual (DataRefImpl Sec) const override
bool isDebugSection (DataRefImpl Sec) const override
relocation_iterator section_rel_begin (DataRefImpl Sec) const override
relocation_iterator section_rel_end (DataRefImpl Sec) const override
void moveRelocationNext (DataRefImpl &Rel) const override
uint64_t getRelocationOffset (DataRefImpl Rel) const override
symbol_iterator getRelocationSymbol (DataRefImpl Rel) const override
uint64_t getRelocationType (DataRefImpl Rel) const override
void getRelocationTypeName (DataRefImpl Rel, SmallVectorImpl< char > &Result) const override
Protected Member Functions inherited from llvm::object::ObjectFile
ObjectFile (unsigned int Type, MemoryBufferRef Source)
const uint8_t * base () const
Error printSymbolName (raw_ostream &OS, DataRefImpl Symb) const override
virtual bool isSectionBitcode (DataRefImpl Sec) const
virtual bool isSectionStripped (DataRefImpl Sec) const
virtual bool isBerkeleyText (DataRefImpl Sec) const
virtual bool isBerkeleyData (DataRefImpl Sec) const
virtual Expected< section_iterator > getRelocatedSection (DataRefImpl Sec) const
virtual llvm::binaryformat::Swift5ReflectionSectionKind mapReflectionSectionNameToEnumValue (StringRef SectionName) const
Expected< uint64_t > getSymbolValue (DataRefImpl Symb) const
Protected Member Functions inherited from llvm::object::Binary
Binary (unsigned int Type, MemoryBufferRef Source)
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

getCHPEMetadata()

getCOFFBigObjHeader()

getCOFFHeader()

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().

getDOSHeader()

const dos_header * llvm::object::COFFObjectFile::getDOSHeader ( ) const inline

getDynamicRelocTable()

getExportTable()

getFeatures()

getFileFormatName()

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

getPE32Header()

const pe32_header * llvm::object::COFFObjectFile::getPE32Header ( ) const inline

getPE32PlusHeader()

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]

getSizeOfOptionalHeader()

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: