LLVM API Documentation
#include <ELFObjectFile.h>
Public Types | |
typedef ELFFile< ELFT >::uintX_t | uintX_t |
typedef ELFFile< ELFT >::Elf_Sym | Elf_Sym |
typedef ELFFile< ELFT >::Elf_Shdr | Elf_Shdr |
typedef ELFFile< ELFT >::Elf_Rel | Elf_Rel |
typedef ELFFile< ELFT >::Elf_Rela | Elf_Rela |
typedef ELFFile< ELFT >::Elf_Dyn | Elf_Dyn |
typedef ELFFile< ELFT > ::Elf_Sym_Iter | Elf_Sym_Iter |
typedef ELFFile< ELFT > ::Elf_Shdr_Iter | Elf_Shdr_Iter |
typedef ELFFile< ELFT > ::Elf_Dyn_Iter | Elf_Dyn_Iter |
Static Public Member Functions | |
static bool | classof (const Binary *v) |
![]() | |
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) |
Protected Attributes | |
ELFFile< ELFT > | EF |
bool | isDyldELFObject |
![]() | |
MemoryBuffer * | Data |
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) |
Definition at line 39 of file ELFObjectFile.h.
typedef ELFFile<ELFT>::Elf_Dyn llvm::object::ELFObjectFile< ELFT >::Elf_Dyn |
Definition at line 49 of file ELFObjectFile.h.
typedef ELFFile<ELFT>::Elf_Dyn_Iter llvm::object::ELFObjectFile< ELFT >::Elf_Dyn_Iter |
Definition at line 53 of file ELFObjectFile.h.
typedef ELFFile<ELFT>::Elf_Rel llvm::object::ELFObjectFile< ELFT >::Elf_Rel |
Definition at line 47 of file ELFObjectFile.h.
typedef ELFFile<ELFT>::Elf_Rela llvm::object::ELFObjectFile< ELFT >::Elf_Rela |
Definition at line 48 of file ELFObjectFile.h.
typedef ELFFile<ELFT>::Elf_Shdr llvm::object::ELFObjectFile< ELFT >::Elf_Shdr |
Definition at line 46 of file ELFObjectFile.h.
typedef ELFFile<ELFT>::Elf_Shdr_Iter llvm::object::ELFObjectFile< ELFT >::Elf_Shdr_Iter |
Definition at line 52 of file ELFObjectFile.h.
typedef ELFFile<ELFT>::Elf_Sym llvm::object::ELFObjectFile< ELFT >::Elf_Sym |
Definition at line 45 of file ELFObjectFile.h.
typedef ELFFile<ELFT>::Elf_Sym_Iter llvm::object::ELFObjectFile< ELFT >::Elf_Sym_Iter |
Definition at line 51 of file ELFObjectFile.h.
typedef ELFFile<ELFT>::uintX_t llvm::object::ELFObjectFile< ELFT >::uintX_t |
Definition at line 43 of file ELFObjectFile.h.
llvm::object::ELFObjectFile< ELFT >::ELFObjectFile | ( | MemoryBuffer * | Object, |
error_code & | ec | ||
) |
Definition at line 815 of file ELFObjectFile.h.
|
virtual |
Implements llvm::object::ObjectFile.
Definition at line 833 of file ELFObjectFile.h.
|
virtual |
Implements llvm::object::ObjectFile.
Definition at line 866 of file ELFObjectFile.h.
References llvm::X86II::DE, and llvm::ELF::DT_SONAME.
|
virtual |
Implements llvm::object::ObjectFile.
Definition at line 843 of file ELFObjectFile.h.
|
virtual |
Implements llvm::object::ObjectFile.
Definition at line 823 of file ELFObjectFile.h.
|
inlinestatic |
Definition at line 197 of file ELFObjectFile.h.
References llvm::object::Binary::getELFType(), llvm::object::Binary::getType(), and llvm::support::little.
|
virtual |
Implements llvm::object::ObjectFile.
Definition at line 838 of file ELFObjectFile.h.
|
virtual |
Implements llvm::object::ObjectFile.
Definition at line 899 of file ELFObjectFile.h.
|
virtual |
Implements llvm::object::ObjectFile.
Definition at line 848 of file ELFObjectFile.h.
|
virtual |
Implements llvm::object::ObjectFile.
Definition at line 828 of file ELFObjectFile.h.
|
virtual |
Implements llvm::object::ObjectFile.
Definition at line 950 of file ELFObjectFile.h.
References llvm::Triple::aarch64, llvm::Triple::arm, llvm::ELF::EM_386, llvm::ELF::EM_AARCH64, llvm::ELF::EM_ARM, llvm::ELF::EM_HEXAGON, llvm::ELF::EM_MIPS, llvm::ELF::EM_PPC64, llvm::ELF::EM_S390, llvm::ELF::EM_X86_64, llvm::Triple::hexagon, llvm::support::little, llvm::Triple::mips, llvm::Triple::mipsel, llvm::Triple::ppc64, llvm::Triple::ppc64le, llvm::Triple::systemz, llvm::Triple::UnknownArch, llvm::Triple::x86, and llvm::Triple::x86_64.
|
virtual |
The number of bytes used to represent an address in this object file format.
Implements llvm::object::ObjectFile.
Definition at line 904 of file ELFObjectFile.h.
|
inline |
Definition at line 194 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::EF.
|
virtual |
Implements llvm::object::ObjectFile.
Definition at line 909 of file ELFObjectFile.h.
References llvm::ELF::EI_CLASS, llvm::ELF::ELFCLASS32, llvm::ELF::ELFCLASS64, llvm::ELF::EM_386, llvm::ELF::EM_AARCH64, llvm::ELF::EM_ARM, llvm::ELF::EM_HEXAGON, llvm::ELF::EM_MIPS, llvm::ELF::EM_PPC, llvm::ELF::EM_PPC64, llvm::ELF::EM_S390, llvm::ELF::EM_X86_64, and llvm::report_fatal_error().
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 877 of file ELFObjectFile.h.
References llvm::X86II::DE, llvm::ELF::DT_NEEDED, and llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 892 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
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.
Implements llvm::object::ObjectFile.
Definition at line 853 of file ELFObjectFile.h.
References llvm::X86II::DE, and llvm::ELF::DT_SONAME.
|
inlinevirtual |
Definition at line 190 of file ELFObjectFile.h.
|
protected |
Definition at line 804 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::a, llvm::object::DataRefImpl::b, and llvm::object::DataRefImpl::d.
|
protected |
Definition at line 810 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::a, llvm::object::DataRefImpl::b, and llvm::object::DataRefImpl::d.
|
protectedvirtual |
Reimplemented from llvm::object::ObjectFile.
Definition at line 567 of file ELFObjectFile.h.
References llvm::ELF::ET_REL.
error_code llvm::object::ELFObjectFile< ELFT >::getRelocationAddend | ( | DataRefImpl | Rel, |
int64_t & | Res | ||
) | const |
Definition at line 700 of file ELFObjectFile.h.
References llvm::report_fatal_error(), and llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 627 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 582 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::b, llvm::object::DataRefImpl::d, and llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 634 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 591 of file ELFObjectFile.h.
References llvm::report_fatal_error().
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 654 of file ELFObjectFile.h.
References llvm::report_fatal_error(), and llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 678 of file ELFObjectFile.h.
References llvm::object::object_error::parse_failed, and llvm::object::object_error::success.
|
protected |
Definition at line 673 of file ELFObjectFile.h.
References llvm::object::getELFRelocationTypeName(), and Type.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 718 of file ELFObjectFile.h.
References llvm::SmallVectorImpl< T >::append(), llvm::StringRef::begin(), llvm::ELF::EM_AARCH64, llvm::ELF::EM_ARM, llvm::ELF::EM_HEXAGON, llvm::ELF::EM_X86_64, llvm::SmallVectorBase::empty(), llvm::StringRef::end(), llvm::raw_ostream::flush(), llvm::object::object_error::parse_failed, llvm::ELF::R_X86_64_16, llvm::ELF::R_X86_64_32, llvm::ELF::R_X86_64_32S, llvm::ELF::R_X86_64_64, llvm::ELF::R_X86_64_8, llvm::ELF::R_X86_64_PC16, llvm::ELF::R_X86_64_PC32, llvm::ELF::R_X86_64_PC8, and llvm::object::object_error::success.
|
inlineprotected |
Get the relocation section that contains Rel.
Definition at line 110 of file ELFObjectFile.h.
|
protected |
Definition at line 641 of file ELFObjectFile.h.
References llvm::report_fatal_error().
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 444 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 466 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 458 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 434 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 427 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 451 of file ELFObjectFile.h.
References llvm::object::object_error::success.
const ELFFile< ELFT >::Elf_Sym * llvm::object::ELFObjectFile< ELFT >::getSymbol | ( | DataRefImpl | Symb | ) | const |
Definition at line 798 of file ELFObjectFile.h.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 275 of file ELFObjectFile.h.
References llvm::ELF::EM_ARM, llvm::ELF::ET_DYN, llvm::ELF::ET_EXEC, llvm::object::Elf_Sym_Impl< ELFT >::getType(), llvm::ELF::SHN_ABS, llvm::ELF::SHN_COMMON, llvm::ELF::SHN_UNDEF, llvm::ELF::STT_FUNC, llvm::ELF::STT_NOTYPE, llvm::ELF::STT_OBJECT, llvm::ELF::STT_SECTION, llvm::object::object_error::success, and llvm::object::UnknownAddressOrSize.
|
protectedvirtual |
Reimplemented from llvm::object::ObjectFile.
Definition at line 323 of file ELFObjectFile.h.
References llvm::ELF::SHN_COMMON, and llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 242 of file ELFObjectFile.h.
References llvm::object::Elf_Sym_Impl< ELFT >::getType(), llvm::ELF::SHN_ABS, llvm::ELF::SHN_COMMON, llvm::ELF::SHN_UNDEF, llvm::ELF::STT_FUNC, llvm::ELF::STT_NOTYPE, llvm::ELF::STT_OBJECT, llvm::ELF::STT_SECTION, llvm::object::object_error::success, and llvm::object::UnknownAddressOrSize.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 371 of file ELFObjectFile.h.
References llvm::object::Elf_Sym_Impl< ELFT >::getBinding(), llvm::object::Elf_Sym_Impl< ELFT >::getType(), llvm::ELF::SHN_ABS, llvm::ELF::SHN_COMMON, llvm::ELF::SHN_UNDEF, llvm::ELF::STB_LOCAL, llvm::ELF::STB_WEAK, llvm::ELF::STT_COMMON, llvm::ELF::STT_FILE, llvm::ELF::STT_SECTION, llvm::ELF::STT_TLS, and llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 218 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 211 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 404 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::p, and llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 334 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 341 of file ELFObjectFile.h.
References llvm::object::Elf_Sym_Impl< ELFT >::getType(), 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, llvm::object::SymbolRef::ST_Unknown, llvm::ELF::STT_COMMON, llvm::ELF::STT_FILE, llvm::ELF::STT_FUNC, llvm::ELF::STT_NOTYPE, llvm::ELF::STT_OBJECT, llvm::ELF::STT_SECTION, llvm::ELF::STT_TLS, and llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 419 of file ELFObjectFile.h.
References llvm::object::object_error::success.
error_code llvm::object::ELFObjectFile< ELFT >::getSymbolVersion | ( | SymbolRef | Symb, |
StringRef & | Version, | ||
bool & | IsDefault | ||
) | const |
Definition at line 228 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::b, llvm::object::DataRefImpl::d, llvm::object::SymbolRef::getRawDataRefImpl(), and llvm::object::object_error::success.
|
inline |
Definition at line 196 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::isDyldELFObject.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 489 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 480 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 520 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 499 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 473 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 506 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 513 of file ELFObjectFile.h.
References llvm::object::object_error::success.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 542 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::a, llvm::object::DataRefImpl::b, llvm::object::DataRefImpl::d, and llvm::object::DataRefImpl::p.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 552 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::a, llvm::object::DataRefImpl::b, llvm::object::DataRefImpl::d, and llvm::object::DataRefImpl::p.
|
protectedvirtual |
Implements llvm::object::ObjectFile.
Definition at line 528 of file ELFObjectFile.h.
References llvm::ELF::SHN_HIRESERVE, llvm::ELF::SHN_LORESERVE, and llvm::object::object_error::success.
|
inlineprotected |
Definition at line 127 of file ELFObjectFile.h.
References llvm::object::ELFFile< ELFT >::Elf_Sym_Iter::get(), llvm::object::ELFFile< ELFT >::Elf_Sym_Iter::isDynamic(), and llvm::object::DataRefImpl::p.
|
inlineprotected |
Definition at line 139 of file ELFObjectFile.h.
References llvm::object::ELFFile< ELFT >::ELFEntityIterator< EntT >::get(), and llvm::object::DataRefImpl::p.
|
inlineprotected |
Definition at line 145 of file ELFObjectFile.h.
References llvm::object::DataRefImpl::p.
|
inlineprotected |
Definition at line 156 of file ELFObjectFile.h.
References llvm::object::ELFFile< ELFT >::ELFEntityIterator< EntT >::get(), and llvm::object::DataRefImpl::p.
|
inlineprotected |
Definition at line 151 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::EF, and llvm::object::DataRefImpl::p.
|
inlineprotected |
Definition at line 134 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::EF, and llvm::object::DataRefImpl::p.
|
inlineprotected |
Definition at line 117 of file ELFObjectFile.h.
References llvm::object::ELFObjectFile< ELFT >::EF, and llvm::object::DataRefImpl::p.
|
protected |
Definition at line 56 of file ELFObjectFile.h.
Referenced by llvm::object::ELFObjectFile< ELFT >::getELFFile(), llvm::object::ELFObjectFile< ELFT >::toELFDynIter(), llvm::object::ELFObjectFile< ELFT >::toELFShdrIter(), and llvm::object::ELFObjectFile< ELFT >::toELFSymIter().
|
protected |
Definition at line 165 of file ELFObjectFile.h.
Referenced by llvm::object::ELFObjectFile< ELFT >::isDyldType().