LLVM 18.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< std::optional< VersionEntry >, 0 > &VersionMap, std::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. | |
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. | |
Expected< SmallVector< std::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. | |
Elf_Note_Iterator | notes_begin (const Elf_Phdr &Phdr, Error &Err) const |
Get an iterator over notes in a program header. | |
Elf_Note_Iterator | notes_begin (const Elf_Shdr &Shdr, Error &Err) const |
Get an iterator over notes in a section. | |
Elf_Note_Iterator | notes_end () const |
Get the end iterator for notes. | |
iterator_range< Elf_Note_Iterator > | notes (const Elf_Phdr &Phdr, Error &Err) const |
Get an iterator range over notes of a program header. | |
iterator_range< Elf_Note_Iterator > | notes (const Elf_Shdr &Shdr, Error &Err) const |
Get an iterator range over notes of a section. | |
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< BBAddrMap > > | decodeBBAddrMap (const Elf_Shdr &Sec, const Elf_Shdr *RelaSec=nullptr) const |
Returns a vector of BBAddrMap structs corresponding to each function within the text section that the SHT_LLVM_BB_ADDR_MAP section Sec is associated with. | |
Expected< MapVector< const Elf_Shdr *, const Elf_Shdr * > > | getSectionAndRelocations (std::function< Expected< bool >(const Elf_Shdr &)> IsMatch) const |
Returns a map from every section matching IsMatch to its relocation section, or nullptr if it has no relocation section. | |
void | createFakeSections () |
Used by llvm-objdump -d (which needs sections for disassembly) to disassemble objects without a section header table (e.g. | |
Static Public Member Functions | |
static Expected< ELFFile > | create (StringRef Object) |
using llvm::object::ELFFile< ELFT >::WarningHandler = llvm::function_ref<Error(const Twine &Msg)> |
Expected< std::vector< typename ELFT::Rela > > ELFFile::android_relas | ( | const Elf_Shdr & | Sec | ) | const |
Definition at line 393 of file ELF.cpp.
References Content, llvm::object::createError(), llvm::Data, I, llvm::Offset, llvm::ELF::RELOCATION_GROUP_HAS_ADDEND_FLAG, llvm::ELF::RELOCATION_GROUPED_BY_ADDEND_FLAG, llvm::ELF::RELOCATION_GROUPED_BY_INFO_FLAG, llvm::ELF::RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG, llvm::DataExtractor::Cursor::takeError(), and llvm::Expected< T >::takeError().
|
inline |
Definition at line 179 of file ELF.h.
References llvm::StringRef::bytes_begin().
Referenced by llvm::object::ELFFile< ELFT >::end(), llvm::object::ELFFile< ELFT >::getHeader(), llvm::object::ELFFile< ELFT >::notes_begin(), and llvm::object::ELFFile< ELFT >::program_headers().
|
static |
Definition at line 792 of file ELF.h.
References llvm::object::createError().
Referenced by llvm::objcopy::elf::ELFBuilder< ELFT >::build(), llvm::object::ELFObjectFile< ELFT >::create(), and llvm::jitlink::readTargetMachineArch().
void llvm::object::ELFFile< ELFT >::createFakeSections |
Used by llvm-objdump -d (which needs sections for disassembly) to disassemble objects without a section header table (e.g.
ET_CORE objects analyzed by linux perf or ET_EXEC with llvm-strip –strip-sections).
Definition at line 803 of file ELF.h.
References llvm::enumerate(), Idx, llvm::ELF::PF_X, llvm::ELF::PT_LOAD, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ELF::SHF_ALLOC, llvm::ELF::SHF_EXECINSTR, llvm::ELF::SHT_PROGBITS, and llvm::SmallVectorBase< Size_T >::size().
std::vector< typename ELFT::Rel > ELFFile::decode_relrs | ( | Elf_Relr_Range | relrs | ) | const |
Definition at line 329 of file ELF.cpp.
References Addr, llvm::sampleprof::Base, and llvm::Offset.
Expected< std::vector< BBAddrMap > > ELFFile::decodeBBAddrMap | ( | const Elf_Shdr & | Sec, |
const Elf_Shdr * | RelaSec = nullptr |
||
) | const |
Returns a vector of BBAddrMap structs corresponding to each function within the text section that the SHT_LLVM_BB_ADDR_MAP section Sec
is associated with.
If the current ELFFile is relocatable, a corresponding RelaSec
must be passed in as an argument.
Definition at line 650 of file ELF.cpp.
References assert(), Content, llvm::object::createError(), llvm::Data, llvm::object::BBAddrMap::BBEntry::Metadata::decode(), llvm::object::describe(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::ELF::ET_REL, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::joinErrors(), llvm::Offset, llvm::ELF::SHT_LLVM_BB_ADDR_MAP, Size, llvm::Error::success(), llvm::DataExtractor::Cursor::takeError(), llvm::Expected< T >::takeError(), llvm::DataExtractor::Cursor::tell(), llvm::dwarf::toString(), and llvm::Twine::utohexstr().
Referenced by readBBAddrMapImpl().
Expected< typename ELFT::DynRange > ELFFile::dynamicEntries |
Definition at line 550 of file ELF.cpp.
References llvm::ArrayRef< T >::back(), llvm::object::createError(), llvm::ArrayRef< T >::data(), llvm::ArrayRef< T >::empty(), llvm::ELF::PT_DYNAMIC, sections, llvm::ELF::SHT_DYNAMIC, and llvm::Expected< T >::takeError().
|
inline |
Definition at line 180 of file ELF.h.
References llvm::object::ELFFile< ELFT >::base(), and llvm::object::ELFFile< ELFT >::getBufSize().
|
inline |
Definition at line 182 of file ELF.h.
References llvm::StringRef::size().
Referenced by llvm::object::ELFFile< ELFT >::end(), llvm::object::ELFFile< ELFT >::notes_begin(), and llvm::object::ELFFile< ELFT >::program_headers().
std::string ELFFile::getDynamicTagAsString | ( | uint64_t | Type | ) | const |
std::string ELFFile::getDynamicTagAsString | ( | unsigned | Arch, |
uint64_t | Type | ||
) | const |
Definition at line 461 of file ELF.cpp.
References llvm::ELF::EM_AARCH64, llvm::ELF::EM_HEXAGON, llvm::ELF::EM_MIPS, llvm::ELF::EM_PPC, llvm::ELF::EM_PPC64, and llvm::ELF::EM_RISCV.
Expected< uint64_t > llvm::object::ELFFile< ELFT >::getDynSymtabSize |
This function determines the number of dynamic symbols.
It reads section headers first. If section headers are not available, the number of symbols will be inferred by parsing dynamic hash tables.
Definition at line 729 of file ELF.h.
References llvm::StringRef::bytes_end(), llvm::createStringError(), llvm::Expected< T >::get(), llvm::object::parse_failed, sections, llvm::ELF::SHT_DYNSYM, and llvm::Expected< T >::takeError().
Expected< const T * > llvm::object::ELFFile< ELFT >::getEntry | ( | const Elf_Shdr & | Section, |
uint32_t | Entry | ||
) | const |
Definition at line 892 of file ELF.h.
References llvm::object::createError(), llvm::ArrayRef< T >::size(), llvm::Expected< T >::takeError(), and llvm::Twine::utohexstr().
Expected< const T * > llvm::object::ELFFile< ELFT >::getEntry | ( | uint32_t | Section, |
uint32_t | Entry | ||
) | const |
Definition at line 882 of file ELF.h.
References llvm::object::getSection().
|
inline |
Definition at line 192 of file ELF.h.
References llvm::object::ELFFile< ELFT >::base().
Referenced by llvm::object::describe(), llvm::object::ELFFile< ELFT >::isLE(), llvm::object::ELFFile< ELFT >::isMipsELF64(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::isRelocatable(), llvm::object::ELFFile< ELFT >::program_headers(), and readBBAddrMapImpl().
Expected< StringRef > llvm::object::ELFFile< ELFT >::getLinkAsStrtab | ( | const typename ELFT::Shdr & | Sec | ) | const |
Definition at line 1210 of file ELF.h.
References llvm::object::createError(), llvm::object::describe(), llvm::object::getSection(), llvm::Expected< T >::takeError(), and llvm::dwarf::toString().
uint32_t llvm::object::ELFFile< ELFT >::getRelativeRelocationType |
Definition at line 617 of file ELF.h.
References llvm::object::getELFRelativeRelocationType().
Expected< const typename ELFT::Sym * > llvm::object::ELFFile< ELFT >::getRelocationSymbol | ( | const Elf_Rel & | Rel, |
const Elf_Shdr * | SymTab | ||
) | const |
Get the symbol for a given relocation.
Definition at line 660 of file ELF.h.
References isMips64EL().
StringRef llvm::object::ELFFile< ELFT >::getRelocationTypeName | ( | uint32_t | Type | ) | const |
Definition at line 581 of file ELF.h.
References llvm::object::getELFRelocationTypeName().
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 |
Definition at line 481 of file ELF.h.
References llvm::object::getSection(), and Sym.
Referenced by readBBAddrMapImpl().
Expected< const typename ELFT::Shdr * > llvm::object::ELFFile< ELFT >::getSection | ( | const Elf_Sym & | Sym, |
Elf_Sym_Range | Symtab, | ||
DataRegion< Elf_Word > | ShndxTable | ||
) | const |
Definition at line 491 of file ELF.h.
References llvm::object::getSection(), and Sym.
Expected< const typename ELFT::Shdr * > llvm::object::ELFFile< ELFT >::getSection | ( | uint32_t | Index | ) | const |
Expected< MapVector< const typename ELFT::Shdr *, const typename ELFT::Shdr * > > ELFFile::getSectionAndRelocations | ( | std::function< Expected< bool >(const Elf_Shdr &)> | IsMatch | ) | const |
Returns a map from every section matching IsMatch
to its relocation section, or nullptr
if it has no relocation section.
This function returns an error if any of the IsMatch
calls fail or if it fails to retrieve the content section of any relocation section.
Definition at line 761 of file ELF.cpp.
References llvm::cantFail(), llvm::object::createError(), llvm::object::describe(), llvm::object::getSection(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::insert(), llvm::joinErrors(), sections, llvm::ELF::SHT_REL, llvm::ELF::SHT_RELA, llvm::Error::success(), llvm::Expected< T >::takeError(), and llvm::dwarf::toString().
Referenced by readBBAddrMapImpl().
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 |
Definition at line 520 of file ELF.h.
References llvm::object::createError(), llvm::object::getSecIndexForError(), llvm::Offset, llvm::StringRef::size(), Size, and llvm::Twine::utohexstr().
Expected< uint32_t > llvm::object::ELFFile< ELFT >::getSectionIndex | ( | const Elf_Sym & | Sym, |
Elf_Sym_Range | Syms, | ||
DataRegion< Elf_Word > | ShndxTable | ||
) | const |
Definition at line 464 of file ELF.h.
References llvm::ELF::SHN_LORESERVE, llvm::ELF::SHN_UNDEF, llvm::ELF::SHN_XINDEX, Sym, and llvm::Expected< T >::takeError().
Expected< StringRef > llvm::object::ELFFile< ELFT >::getSectionName | ( | const Elf_Shdr & | Section, |
StringRef | DotShstrtab | ||
) | const |
Definition at line 1239 of file ELF.h.
References llvm::object::createError(), llvm::StringRef::data(), llvm::object::getSecIndexForError(), llvm::Offset, llvm::StringRef::size(), and llvm::Twine::utohexstr().
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 |
Definition at line 670 of file ELF.h.
References llvm::object::createError(), and llvm::ELF::SHN_XINDEX.
Expected< ArrayRef< uint8_t > > llvm::object::ELFFile< ELFT >::getSegmentContents | ( | const Elf_Phdr & | Phdr | ) | const |
Definition at line 556 of file ELF.h.
References llvm::object::createError(), llvm::object::getPhdrIndexForError(), llvm::Offset, llvm::StringRef::size(), Size, and llvm::Twine::utohexstr().
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 |
Definition at line 1157 of file ELF.h.
References assert(), llvm::object::createError(), llvm::object::getELFSectionTypeName(), llvm::ELF::SHT_DYNSYM, llvm::ELF::SHT_SYMTAB, and llvm::ELF::SHT_SYMTAB_SHNDX.
Expected< StringRef > llvm::object::ELFFile< ELFT >::getStringTable | ( | const Elf_Shdr & | Section, |
WarningHandler | WarnHandler = &defaultWarningHandler |
||
) | const |
Definition at line 1122 of file ELF.h.
References llvm::object::createError(), llvm::Data, E, llvm::object::getELFSectionTypeName(), llvm::object::getSecIndexForError(), and llvm::ELF::SHT_STRTAB.
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 |
Definition at line 1195 of file ELF.h.
References llvm::object::createError(), llvm::ELF::SHT_DYNSYM, llvm::ELF::SHT_SYMTAB, and llvm::Expected< T >::takeError().
Expected< const typename ELFT::Sym * > llvm::object::ELFFile< ELFT >::getSymbol | ( | const Elf_Shdr * | Sec, |
uint32_t | Index | ||
) | const |
Definition at line 504 of file ELF.h.
References llvm::object::createError(), and llvm::object::getSecIndexForError().
Expected< StringRef > llvm::object::ELFFile< ELFT >::getSymbolVersionByIndex | ( | uint32_t | SymbolVersionIndex, |
bool & | IsDefault, | ||
SmallVector< std::optional< VersionEntry >, 0 > & | VersionMap, | ||
std::optional< bool > | IsSymHidden | ||
) | const |
Definition at line 909 of file ELF.h.
References llvm::object::createError(), llvm::ELF::VER_NDX_GLOBAL, llvm::ELF::VER_NDX_LOCAL, llvm::ELF::VERSYM_HIDDEN, and llvm::ELF::VERSYM_VERSION.
Referenced by readDynsymVersionsImpl().
Expected< std::vector< VerDef > > llvm::object::ELFFile< ELFT >::getVersionDefinitions | ( | const Elf_Shdr & | Sec | ) | const |
Definition at line 938 of file ELF.h.
References llvm::object::VerDef::AuxV, llvm::object::VerDef::Cnt, llvm::object::createError(), D, llvm::object::describe(), End, llvm::object::VerDef::Flags, llvm::object::VerDef::Hash, I, llvm::object::VerdAux::Name, llvm::object::VerDef::Name, llvm::object::VerDef::Ndx, llvm::object::VerdAux::Offset, llvm::object::VerDef::Offset, llvm::Expected< T >::takeError(), llvm::dwarf::toString(), llvm::Twine::utohexstr(), and llvm::object::VerDef::Version.
Expected< std::vector< VerNeed > > llvm::object::ELFFile< ELFT >::getVersionDependencies | ( | const Elf_Shdr & | Sec, |
WarningHandler | WarnHandler = &defaultWarningHandler |
||
) | const |
Definition at line 1025 of file ELF.h.
References llvm::object::VerNeed::AuxV, llvm::object::VerNeed::Cnt, llvm::object::createError(), llvm::StringRef::data(), llvm::object::describe(), llvm::StringRef::drop_front(), E, End, llvm::object::VerNeed::File, llvm::object::VernAux::Flags, llvm::object::VernAux::Hash, I, llvm::object::VernAux::Name, llvm::object::VernAux::Offset, llvm::object::VerNeed::Offset, llvm::object::VernAux::Other, llvm::StringRef::size(), llvm::Expected< T >::takeError(), llvm::dwarf::toString(), llvm::Twine::utohexstr(), and llvm::object::VerNeed::Version.
|
inline |
Definition at line 242 of file ELF.h.
References llvm::ELF::ELFDATA2LSB, and llvm::object::ELFFile< ELFT >::getHeader().
Referenced by llvm::object::ELFFile< ELFT >::isMips64EL().
|
inline |
Definition at line 251 of file ELF.h.
References llvm::object::ELFFile< ELFT >::isLE(), and llvm::object::ELFFile< ELFT >::isMipsELF64().
|
inline |
Definition at line 246 of file ELF.h.
References llvm::ELF::ELFCLASS64, llvm::ELF::EM_MIPS, and llvm::object::ELFFile< ELFT >::getHeader().
Referenced by llvm::object::ELFFile< ELFT >::isMips64EL().
Expected< SmallVector< std::optional< VersionEntry >, 0 > > llvm::object::ELFFile< ELFT >::loadVersionMap | ( | const Elf_Shdr * | VerNeedSec, |
const Elf_Shdr * | VerDefSec | ||
) | const |
Definition at line 623 of file ELF.h.
References N, llvm::object::VernAux::Name, llvm::object::VernAux::Other, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::resize(), llvm::SmallVectorBase< Size_T >::size(), llvm::Expected< T >::takeError(), and llvm::ELF::VERSYM_VERSION.
Referenced by readDynsymVersionsImpl().
|
inline |
Get an iterator range over notes of a program header.
The program header must be of type PT_NOTE
.
Phdr | the program header to iterate over. |
Err | [out] an error to support fallible iteration, which should be checked after iteration ends. |
Definition at line 370 of file ELF.h.
References llvm::make_range(), llvm::object::ELFFile< ELFT >::notes_begin(), and llvm::object::ELFFile< ELFT >::notes_end().
|
inline |
Get an iterator range over notes of a section.
The section must be of type SHT_NOTE
.
Shdr | the section to iterate over. |
Err | [out] an error to support fallible iteration, which should be checked after iteration ends. |
Definition at line 382 of file ELF.h.
References llvm::make_range(), llvm::object::ELFFile< ELFT >::notes_begin(), llvm::object::ELFFile< ELFT >::notes_end(), and Shdr.
|
inline |
Get an iterator over notes in a program header.
The program header must be of type PT_NOTE
.
Phdr | the program header to iterate over. |
Err | [out] an error to support fallible iteration, which should be checked after iteration ends. |
Definition at line 310 of file ELF.h.
References assert(), llvm::object::ELFFile< ELFT >::base(), llvm::object::createError(), llvm::object::ELFFile< ELFT >::getBufSize(), llvm::ELF::PT_NOTE, and llvm::Twine::utohexstr().
Referenced by llvm::object::ELFFile< ELFT >::notes().
|
inline |
Get an iterator over notes in a section.
The section must be of type SHT_NOTE
.
Shdr | the section to iterate over. |
Err | [out] an error to support fallible iteration, which should be checked after iteration ends. |
Definition at line 338 of file ELF.h.
References assert(), llvm::object::ELFFile< ELFT >::base(), llvm::object::createError(), llvm::object::ELFFile< ELFT >::getBufSize(), Shdr, llvm::ELF::SHT_NOTE, and llvm::Twine::utohexstr().
|
inline |
Get the end iterator for notes.
Definition at line 359 of file ELF.h.
Referenced by llvm::object::ELFFile< ELFT >::notes().
|
inline |
Iterate over program header table.
Definition at line 284 of file ELF.h.
References llvm::object::ELFFile< ELFT >::base(), llvm::object::createError(), llvm::object::ELFFile< ELFT >::getBufSize(), llvm::object::ELFFile< ELFT >::getHeader(), and llvm::Twine::utohexstr().
Referenced by llvm::object::getPhdrIndexForError().
|
inline |
|
inline |
|
inline |
Expected< typename ELFT::ShdrRange > llvm::object::ELFFile< ELFT >::sections |
Definition at line 829 of file ELF.h.
References llvm::object::createError(), llvm::First, llvm::StringRef::size(), UINT64_MAX, and llvm::Twine::utohexstr().
Referenced by llvm::object::describe(), llvm::object::getSecIndexForError(), readBBAddrMapImpl(), and readDynsymVersionsImpl().
|
inline |
Expected< const uint8_t * > ELFFile::toMappedAddr | ( | uint64_t | VAddr, |
WarningHandler | WarnHandler = &defaultWarningHandler |
||
) | const |
Definition at line 598 of file ELF.cpp.
References A, B, llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::object::createError(), E, I, llvm::is_sorted(), llvm::Offset, llvm::ELF::PT_LOAD, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::stable_sort(), llvm::upper_bound(), and llvm::Twine::utohexstr().