LLVM API Documentation
#include <ObjectFile.h>
Public Member Functions | |
virtual symbol_iterator | begin_symbols () const =0 |
virtual symbol_iterator | end_symbols () const =0 |
virtual symbol_iterator | begin_dynamic_symbols () const =0 |
virtual symbol_iterator | end_dynamic_symbols () const =0 |
virtual section_iterator | begin_sections () const =0 |
virtual section_iterator | end_sections () const =0 |
virtual library_iterator | begin_libraries_needed () const =0 |
virtual library_iterator | end_libraries_needed () const =0 |
virtual uint8_t | getBytesInAddress () const =0 |
The number of bytes used to represent an address in this object file format. More... | |
virtual StringRef | getFileFormatName () const =0 |
virtual unsigned | getArch () const =0 |
virtual StringRef | getLoadName () const =0 |
![]() | |
virtual | ~Binary () |
StringRef | getData () const |
StringRef | getFileName () const |
unsigned int | getType () const |
bool | isObject () const |
bool | isArchive () const |
bool | isMachOUniversalBinary () const |
bool | isELF () const |
bool | isMachO () const |
bool | isCOFF () const |
bool | isLittleEndian () const |
Static Public Member Functions | |
static ObjectFile * | createObjectFile (StringRef ObjectPath) |
Create ObjectFile from path. More... | |
static ObjectFile * | createObjectFile (MemoryBuffer *Object) |
static bool | classof (const Binary *v) |
static ObjectFile * | createCOFFObjectFile (MemoryBuffer *Object) |
static ObjectFile * | createELFObjectFile (MemoryBuffer *Object) |
static ObjectFile * | createMachOObjectFile (MemoryBuffer *Object) |
Friends | |
class | SymbolRef |
class | SectionRef |
class | RelocationRef |
class | LibraryRef |
Additional Inherited Members | |
![]() | |
enum | { ID_Archive, ID_MachOUniversalBinary, ID_StartObjects, ID_COFF, ID_ELF32L, ID_ELF32B, ID_ELF64L, ID_ELF64B, ID_MachO32L, ID_MachO32B, ID_MachO64L, ID_MachO64B, ID_EndObjects } |
![]() | |
static unsigned int | getELFType (bool isLE, bool is64Bits) |
static unsigned int | getMachOType (bool isLE, bool is64Bits) |
![]() | |
MemoryBuffer * | Data |
ObjectFile - This class is the base class for all object file types. Concrete instances of this object are created by createObjectFile, which figures out which type to create.
Definition at line 266 of file ObjectFile.h.
|
protected |
Definition at line 26 of file ObjectFile.cpp.
|
inlineprotected |
Definition at line 274 of file ObjectFile.h.
References llvm::object::Binary::Data, and llvm::MemoryBuffer::getBufferStart().
Referenced by llvm::object::COFFObjectFile::COFFObjectFile(), llvm::object::COFFObjectFile::getRvaPtr(), llvm::object::COFFObjectFile::getSymbolAuxData(), llvm::object::COFFObjectFile::section_rel_begin(), and llvm::object::COFFObjectFile::section_rel_end().
|
pure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
|
pure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
|
pure virtual |
|
pure virtual |
Definition at line 382 of file ObjectFile.h.
References llvm::object::Binary::isObject().
|
static |
Definition at line 933 of file COFFObjectFile.cpp.
Referenced by llvm::object::createBinary(), and createObjectFile().
|
static |
Definition at line 21 of file ELFObjectFile.cpp.
References llvm::countTrailingZeros(), llvm::ELF::ELFCLASS32, llvm::ELF::ELFCLASS64, llvm::ELF::ELFDATA2LSB, llvm::ELF::ELFDATA2MSB, llvm::MemoryBuffer::getBufferStart(), llvm::object::getElfArchType(), llvm_unreachable, and llvm::report_fatal_error().
Referenced by llvm::object::createBinary(), and createObjectFile().
|
static |
Definition at line 1582 of file MachOObjectFile.cpp.
References llvm::MemoryBuffer::getBuffer(), Magic, llvm::OwningPtr< T >::reset(), llvm::AArch64ISD::Ret, llvm::StringRef::slice(), and llvm::OwningPtr< T >::take().
Referenced by llvm::object::createBinary(), createObjectFile(), and llvm::object::MachOUniversalBinary::ObjectForArch::getAsObjectFile().
|
static |
Create ObjectFile from path.
ObjectPath | The path to the object file. ObjectPath.isObject must return true. |
Definition at line 79 of file ObjectFile.cpp.
References llvm::ARMBuildAttrs::File, llvm::MemoryBuffer::getFile(), and llvm::OwningPtr< T >::take().
Referenced by LLVMCreateObjectFile(), and llvm::ObjectImageCommon::ObjectImageCommon().
|
static |
Definition at line 40 of file ObjectFile.cpp.
References llvm::sys::fs::file_magic::archive, llvm::sys::fs::file_magic::bitcode, llvm::sys::fs::file_magic::coff_import_library, llvm::sys::fs::file_magic::coff_object, createCOFFObjectFile(), createELFObjectFile(), createMachOObjectFile(), llvm::sys::fs::file_magic::elf_core, llvm::sys::fs::file_magic::elf_executable, llvm::sys::fs::file_magic::elf_relocatable, llvm::sys::fs::file_magic::elf_shared_object, llvm::MemoryBuffer::getBuffer(), llvm::MemoryBuffer::getBufferSize(), llvm::sys::fs::identify_magic(), llvm_unreachable, llvm::sys::fs::file_magic::macho_bundle, llvm::sys::fs::file_magic::macho_core, llvm::sys::fs::file_magic::macho_dsym_companion, llvm::sys::fs::file_magic::macho_dynamic_linker, llvm::sys::fs::file_magic::macho_dynamically_linked_shared_lib, llvm::sys::fs::file_magic::macho_dynamically_linked_shared_lib_stub, llvm::sys::fs::file_magic::macho_executable, llvm::sys::fs::file_magic::macho_fixed_virtual_memory_shared_lib, llvm::sys::fs::file_magic::macho_object, llvm::sys::fs::file_magic::macho_preload_executable, llvm::sys::fs::file_magic::macho_universal_binary, llvm::sys::fs::file_magic::pecoff_executable, llvm::sys::fs::file_magic::unknown, and llvm::sys::fs::file_magic::windows_resource.
|
pure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
|
pure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
|
pure virtual |
|
pure virtual |
|
pure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
Referenced by llvm::ObjectImageCommon::getArch().
|
pure virtual |
The number of bytes used to represent an address in this object file format.
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
|
pure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
Referenced by llvm::DWARFContextInMemory::DWARFContextInMemory().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::LibraryRef::getNext().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::LibraryRef::getPath().
|
pure virtual |
For shared objects, returns the name which this object should be loaded from at runtime. This corresponds to DT_SONAME on ELF and LC_ID_DYLIB (install name) on MachO.
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
|
protectedvirtual |
Reimplemented in llvm::object::ELFObjectFile< ELFT >.
Definition at line 36 of file ObjectFile.cpp.
References SectionRef.
Referenced by llvm::object::SectionRef::getRelocatedSection().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
Referenced by llvm::object::RelocationRef::getAddress().
|
inlineprotectedvirtual |
Reimplemented in llvm::object::MachOObjectFile.
Definition at line 339 of file ObjectFile.h.
References llvm::object::object_error::success.
Referenced by llvm::object::RelocationRef::getHidden().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
Referenced by llvm::object::RelocationRef::getNext().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
Referenced by llvm::object::RelocationRef::getOffset().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
Referenced by llvm::object::RelocationRef::getSymbol().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
Referenced by llvm::object::RelocationRef::getType().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
Referenced by llvm::object::RelocationRef::getTypeName().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
Referenced by llvm::object::RelocationRef::getValueString().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::getAddress().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::getAlignment().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::getContents().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::getName().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::getNext().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::getSize().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SymbolRef::getAddress().
|
protectedvirtual |
Reimplemented in llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Definition at line 30 of file ObjectFile.cpp.
References llvm::object::object_error::success.
Referenced by llvm::object::SymbolRef::getAlignment().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SymbolRef::getFileOffset().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SymbolRef::getFlags().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SymbolRef::getName().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SymbolRef::getNext().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SymbolRef::getSection().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SymbolRef::getSize().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SymbolRef::getType().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SymbolRef::getValue().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::isBSS().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::isData().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::isReadOnlyData().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::isRequiredForExecution().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::isText().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::isVirtual().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::isZeroInit().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::begin_relocations().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::end_relocations().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::containsSymbol().
|
friend |
Definition at line 345 of file ObjectFile.h.
|
friend |
Definition at line 325 of file ObjectFile.h.
Referenced by llvm::object::MachOObjectFile::getRelocationNext(), llvm::object::COFFObjectFile::getRelocationNext(), llvm::object::MachOObjectFile::section_rel_begin(), llvm::object::COFFObjectFile::section_rel_begin(), llvm::object::MachOObjectFile::section_rel_end(), and llvm::object::COFFObjectFile::section_rel_end().
|
friend |
Definition at line 302 of file ObjectFile.h.
Referenced by llvm::object::MachOObjectFile::begin_sections(), llvm::object::COFFObjectFile::begin_sections(), llvm::object::MachOObjectFile::end_sections(), llvm::object::COFFObjectFile::end_sections(), getRelocatedSection(), llvm::object::MachOObjectFile::getRelocationSection(), llvm::object::MachOObjectFile::getSectionNext(), llvm::object::COFFObjectFile::getSectionNext(), llvm::object::MachOObjectFile::getSymbolSection(), and llvm::object::COFFObjectFile::getSymbolSection().
|
friend |
Definition at line 286 of file ObjectFile.h.
Referenced by llvm::object::MachOObjectFile::begin_symbols(), llvm::object::COFFObjectFile::begin_symbols(), llvm::object::MachOObjectFile::end_symbols(), llvm::object::COFFObjectFile::end_symbols(), llvm::object::MachOObjectFile::getRelocationSymbol(), llvm::object::COFFObjectFile::getRelocationSymbol(), llvm::object::MachOObjectFile::getSymbolNext(), and llvm::object::COFFObjectFile::getSymbolNext().