LLVM
13.0.0git
|
#include "llvm/Object/ELF.h"
Public Types | |
using | WarningHandler = llvm::function_ref< Error(const Twine &Msg)> |
Public Member Functions | |
const uint8_t * | base () const |
const uint8_t * | end () const |
size_t | getBufSize () const |
const Elf_Ehdr & | getHeader () const |
template<typename T > | |
Expected< const T * > | getEntry (uint32_t Section, uint32_t Entry) const |
template<typename T > | |
Expected< const T * > | getEntry (const Elf_Shdr &Section, uint32_t Entry) const |
Expected< std::vector< VerDef > > | getVersionDefinitions (const Elf_Shdr &Sec) const |
Expected< std::vector< VerNeed > > | getVersionDependencies (const Elf_Shdr &Sec, WarningHandler WarnHandler=&defaultWarningHandler) const |
Expected< StringRef > | getSymbolVersionByIndex (uint32_t SymbolVersionIndex, bool &IsDefault, SmallVector< Optional< VersionEntry >, 0 > &VersionMap, Optional< bool > IsSymHidden) const |
Expected< StringRef > | getStringTable (const Elf_Shdr &Section, WarningHandler WarnHandler=&defaultWarningHandler) const |
Expected< StringRef > | getStringTableForSymtab (const Elf_Shdr &Section) const |
Expected< StringRef > | getStringTableForSymtab (const Elf_Shdr &Section, Elf_Shdr_Range Sections) const |
Expected< StringRef > | getLinkAsStrtab (const typename ELFT::Shdr &Sec) const |
Expected< ArrayRef< Elf_Word > > | getSHNDXTable (const Elf_Shdr &Section) const |
Expected< ArrayRef< Elf_Word > > | getSHNDXTable (const Elf_Shdr &Section, Elf_Shdr_Range Sections) const |
Expected< uint64_t > | getDynSymtabSize () const |
This function determines the number of dynamic symbols. More... | |
StringRef | getRelocationTypeName (uint32_t Type) const |
void | getRelocationTypeName (uint32_t Type, SmallVectorImpl< char > &Result) const |
uint32_t | getRelativeRelocationType () const |
std::string | getDynamicTagAsString (unsigned Arch, uint64_t Type) const |
std::string | getDynamicTagAsString (uint64_t Type) const |
Expected< const Elf_Sym * > | getRelocationSymbol (const Elf_Rel &Rel, const Elf_Shdr *SymTab) const |
Get the symbol for a given relocation. More... | |
Expected< SmallVector< Optional< VersionEntry >, 0 > > | loadVersionMap (const Elf_Shdr *VerNeedSec, const Elf_Shdr *VerDefSec) const |
bool | isLE () const |
bool | isMipsELF64 () const |
bool | isMips64EL () const |
Expected< Elf_Shdr_Range > | sections () const |
Expected< Elf_Dyn_Range > | dynamicEntries () const |
Expected< const uint8_t * > | toMappedAddr (uint64_t VAddr, WarningHandler WarnHandler=&defaultWarningHandler) const |
Expected< Elf_Sym_Range > | symbols (const Elf_Shdr *Sec) const |
Expected< Elf_Rela_Range > | relas (const Elf_Shdr &Sec) const |
Expected< Elf_Rel_Range > | rels (const Elf_Shdr &Sec) const |
Expected< Elf_Relr_Range > | relrs (const Elf_Shdr &Sec) const |
std::vector< Elf_Rel > | decode_relrs (Elf_Relr_Range relrs) const |
Expected< std::vector< Elf_Rela > > | android_relas (const Elf_Shdr &Sec) const |
Expected< Elf_Phdr_Range > | program_headers () const |
Iterate over program header table. More... | |
Elf_Note_Iterator | notes_begin (const Elf_Phdr &Phdr, Error &Err) const |
Get an iterator over notes in a program header. More... | |
Elf_Note_Iterator | notes_begin (const Elf_Shdr &Shdr, Error &Err) const |
Get an iterator over notes in a section. More... | |
Elf_Note_Iterator | notes_end () const |
Get the end iterator for notes. More... | |
iterator_range< Elf_Note_Iterator > | notes (const Elf_Phdr &Phdr, Error &Err) const |
Get an iterator range over notes of a program header. More... | |
iterator_range< Elf_Note_Iterator > | notes (const Elf_Shdr &Shdr, Error &Err) const |
Get an iterator range over notes of a section. More... | |
Expected< StringRef > | getSectionStringTable (Elf_Shdr_Range Sections, WarningHandler WarnHandler=&defaultWarningHandler) const |
Expected< uint32_t > | getSectionIndex (const Elf_Sym &Sym, Elf_Sym_Range Syms, DataRegion< Elf_Word > ShndxTable) const |
Expected< const Elf_Shdr * > | getSection (const Elf_Sym &Sym, const Elf_Shdr *SymTab, DataRegion< Elf_Word > ShndxTable) const |
Expected< const Elf_Shdr * > | getSection (const Elf_Sym &Sym, Elf_Sym_Range Symtab, DataRegion< Elf_Word > ShndxTable) const |
Expected< const Elf_Shdr * > | getSection (uint32_t Index) const |
Expected< const Elf_Sym * > | getSymbol (const Elf_Shdr *Sec, uint32_t Index) const |
Expected< StringRef > | getSectionName (const Elf_Shdr &Section, WarningHandler WarnHandler=&defaultWarningHandler) const |
Expected< StringRef > | getSectionName (const Elf_Shdr &Section, StringRef DotShstrtab) const |
template<typename T > | |
Expected< ArrayRef< T > > | getSectionContentsAsArray (const Elf_Shdr &Sec) const |
Expected< ArrayRef< uint8_t > > | getSectionContents (const Elf_Shdr &Sec) const |
Expected< ArrayRef< uint8_t > > | getSegmentContents (const Elf_Phdr &Phdr) const |
Expected< std::vector< Elf_BBAddrMap > > | decodeBBAddrMap (const Elf_Shdr &Sec) const |
Static Public Member Functions | |
static Expected< ELFFile > | create (StringRef Object) |
using llvm::object::ELFFile< ELFT >::WarningHandler = llvm::function_ref<Error(const Twine &Msg)> |
|
inline |
Definition at line 181 of file ELF.h.
Referenced by llvm::object::ELFFile< object::ELF64LE >::end(), llvm::object::ELFFile< object::ELF64LE >::getHeader(), and llvm::object::ELFFile< object::ELF64LE >::program_headers().
|
static |
Definition at line 757 of file ELF.h.
Referenced by llvm::object::ELFObjectFile< ELFT >::create(), and llvm::jitlink::readTargetMachineArch().
std::vector< typename ELFT::Rel > ELFFile::decode_relrs | ( | Elf_Relr_Range | relrs | ) | const |
Expected< typename ELFT::DynRange > ELFFile::dynamicEntries | ( | ) | const |
Definition at line 514 of file ELF.cpp.
Referenced by llvm::elfabi::buildStub().
|
inline |
|
inline |
Definition at line 184 of file ELF.h.
Referenced by llvm::object::ELFFile< object::ELF64LE >::end(), and llvm::object::ELFFile< object::ELF64LE >::program_headers().
std::string ELFFile::getDynamicTagAsString | ( | uint64_t | Type | ) | const |
std::string ELFFile::getDynamicTagAsString | ( | unsigned | Arch, |
uint64_t | Type | ||
) | const |
Expected< uint64_t > llvm::object::ELFFile< ELFT >::getDynSymtabSize |
Expected< const T * > llvm::object::ELFFile< ELFT >::getEntry | ( | const Elf_Shdr & | Section, |
uint32_t | Entry | ||
) | const |
Expected< const T * > llvm::object::ELFFile< ELFT >::getEntry | ( | uint32_t | Section, |
uint32_t | Entry | ||
) | const |
|
inline |
Definition at line 192 of file ELF.h.
Referenced by llvm::object::describe(), llvm::object::ELFFile< object::ELF64LE >::isLE(), llvm::object::ELFFile< object::ELF64LE >::isMipsELF64(), and llvm::object::ELFFile< object::ELF64LE >::program_headers().
Expected< StringRef > llvm::object::ELFFile< ELFT >::getLinkAsStrtab | ( | const typename ELFT::Shdr & | Sec | ) | const |
uint32_t llvm::object::ELFFile< ELFT >::getRelativeRelocationType |
Expected< const typename ELFT::Sym * > llvm::object::ELFFile< ELFT >::getRelocationSymbol | ( | const Elf_Rel & | Rel, |
const Elf_Shdr * | SymTab | ||
) | const |
StringRef llvm::object::ELFFile< ELFT >::getRelocationTypeName | ( | uint32_t | Type | ) | const |
void llvm::object::ELFFile< ELFT >::getRelocationTypeName | ( | uint32_t | Type, |
SmallVectorImpl< char > & | Result | ||
) | const |
Expected< const typename ELFT::Shdr * > llvm::object::ELFFile< ELFT >::getSection | ( | const Elf_Sym & | Sym, |
const Elf_Shdr * | SymTab, | ||
DataRegion< Elf_Word > | ShndxTable | ||
) | const |
Expected< const typename ELFT::Shdr * > llvm::object::ELFFile< ELFT >::getSection | ( | const Elf_Sym & | Sym, |
Elf_Sym_Range | Symtab, | ||
DataRegion< Elf_Word > | ShndxTable | ||
) | const |
Expected< const typename ELFT::Shdr * > llvm::object::ELFFile< ELFT >::getSection | ( | uint32_t | Index | ) | const |
Expected< ArrayRef< uint8_t > > llvm::object::ELFFile< ELFT >::getSectionContents | ( | const Elf_Shdr & | Sec | ) | const |
Expected< ArrayRef< T > > llvm::object::ELFFile< ELFT >::getSectionContentsAsArray | ( | const Elf_Shdr & | Sec | ) | const |
Expected< uint32_t > llvm::object::ELFFile< ELFT >::getSectionIndex | ( | const Elf_Sym & | Sym, |
Elf_Sym_Range | Syms, | ||
DataRegion< Elf_Word > | ShndxTable | ||
) | const |
Expected< StringRef > llvm::object::ELFFile< ELFT >::getSectionName | ( | const Elf_Shdr & | Section, |
StringRef | DotShstrtab | ||
) | const |
Expected< StringRef > llvm::object::ELFFile< ELFT >::getSectionName | ( | const Elf_Shdr & | Section, |
WarningHandler | WarnHandler = &defaultWarningHandler |
||
) | const |
Expected< StringRef > llvm::object::ELFFile< ELFT >::getSectionStringTable | ( | Elf_Shdr_Range | Sections, |
WarningHandler | WarnHandler = &defaultWarningHandler |
||
) | const |
Expected< ArrayRef< uint8_t > > llvm::object::ELFFile< ELFT >::getSegmentContents | ( | const Elf_Phdr & | Phdr | ) | const |
Expected< ArrayRef< typename ELFT::Word > > llvm::object::ELFFile< ELFT >::getSHNDXTable | ( | const Elf_Shdr & | Section | ) | const |
Expected< ArrayRef< typename ELFT::Word > > llvm::object::ELFFile< ELFT >::getSHNDXTable | ( | const Elf_Shdr & | Section, |
Elf_Shdr_Range | Sections | ||
) | const |
Expected< StringRef > llvm::object::ELFFile< ELFT >::getStringTable | ( | const Elf_Shdr & | Section, |
WarningHandler | WarnHandler = &defaultWarningHandler |
||
) | const |
Expected< StringRef > llvm::object::ELFFile< ELFT >::getStringTableForSymtab | ( | const Elf_Shdr & | Section | ) | const |
Expected< StringRef > llvm::object::ELFFile< ELFT >::getStringTableForSymtab | ( | const Elf_Shdr & | Section, |
Elf_Shdr_Range | Sections | ||
) | const |
Expected< const typename ELFT::Sym * > llvm::object::ELFFile< ELFT >::getSymbol | ( | const Elf_Shdr * | Sec, |
uint32_t | Index | ||
) | const |
Expected< StringRef > llvm::object::ELFFile< ELFT >::getSymbolVersionByIndex | ( | uint32_t | SymbolVersionIndex, |
bool & | IsDefault, | ||
SmallVector< Optional< VersionEntry >, 0 > & | VersionMap, | ||
Optional< bool > | IsSymHidden | ||
) | const |
Expected< std::vector< VerDef > > llvm::object::ELFFile< ELFT >::getVersionDefinitions | ( | const Elf_Shdr & | Sec | ) | const |
Expected< std::vector< VerNeed > > llvm::object::ELFFile< ELFT >::getVersionDependencies | ( | const Elf_Shdr & | Sec, |
WarningHandler | WarnHandler = &defaultWarningHandler |
||
) | const |
|
inline |
Definition at line 242 of file ELF.h.
Referenced by llvm::object::ELFFile< object::ELF64LE >::isMips64EL().
|
inline |
|
inline |
Definition at line 246 of file ELF.h.
Referenced by llvm::object::ELFFile< object::ELF64LE >::isMips64EL().
Expected< SmallVector< Optional< VersionEntry >, 0 > > llvm::object::ELFFile< ELFT >::loadVersionMap | ( | const Elf_Shdr * | VerNeedSec, |
const Elf_Shdr * | VerDefSec | ||
) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Iterate over program header table.
Definition at line 284 of file ELF.h.
Referenced by llvm::elfabi::buildStub(), and llvm::object::getPhdrIndexForError().
|
inline |
|
inline |
|
inline |
Expected< typename ELFT::ShdrRange > llvm::object::ELFFile< ELFT >::sections |
Definition at line 766 of file ELF.h.
Referenced by llvm::jitlink::ELFLinkGraphBuilder_x86_64::buildGraph(), llvm::object::describe(), and llvm::object::getSecIndexForError().
|
inline |
Expected< const uint8_t * > ELFFile::toMappedAddr | ( | uint64_t | VAddr, |
WarningHandler | WarnHandler = &defaultWarningHandler |
||
) | const |