LLVM 17.0.0git
|
This implements the Apple accelerator table format, a precursor of the DWARF 5 accelerator table format. More...
#include "llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h"
Classes | |
class | Entry |
Apple-specific implementation of an Accelerator Entry. More... | |
class | ValueIterator |
Additional Inherited Members | |
![]() | |
DWARFDataExtractor | AccelSection |
DataExtractor | StringSection |
This implements the Apple accelerator table format, a precursor of the DWARF 5 accelerator table format.
Definition at line 83 of file DWARFAcceleratorTable.h.
|
inline |
Definition at line 181 of file DWARFAcceleratorTable.h.
|
overridevirtual |
Implements llvm::DWARFAcceleratorTable.
Definition at line 202 of file DWARFAcceleratorTable.cpp.
References llvm::DWARFAcceleratorTable::AccelSection, for(), formatAtom(), llvm::formatv(), llvm::DataExtractor::getU32(), llvm::DataExtractor::isValidOffset(), llvm::Offset, OS, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::Twine::utohexstr().
Referenced by llvm::DWARFContext::dump().
iterator_range< AppleAcceleratorTable::ValueIterator > AppleAcceleratorTable::equal_range | ( | StringRef | Key | ) | const |
Look up all entries in the accelerator table matching Key
.
Definition at line 329 of file DWARFAcceleratorTable.cpp.
References llvm::DWARFAcceleratorTable::AccelSection, llvm::djbHash(), llvm::DataExtractor::getCStr(), llvm::DWARFDataExtractor::getRelocatedValue(), llvm::DataExtractor::getU32(), llvm::make_range(), and llvm::DWARFAcceleratorTable::StringSection.
|
overridevirtual |
Implements llvm::DWARFAcceleratorTable.
Definition at line 43 of file DWARFAcceleratorTable.cpp.
References llvm::DWARFAcceleratorTable::AccelSection, llvm::createStringError(), llvm::DataExtractor::getU16(), llvm::DataExtractor::getU32(), llvm::illegal_byte_sequence, llvm::DataExtractor::isValidOffset(), llvm::Offset, offsetof, and llvm::Error::success().
ArrayRef< std::pair< AppleAcceleratorTable::HeaderData::AtomType, AppleAcceleratorTable::HeaderData::Form > > AppleAcceleratorTable::getAtomsDesc | ( | ) |
Return the Atom description, which can be used to interpret the raw values of the Accelerator Entries in this table.
Definition at line 90 of file DWARFAcceleratorTable.cpp.
Referenced by readAtoms(), and validateForms().
uint32_t AppleAcceleratorTable::getHeaderDataLength | ( | ) |
Definition at line 84 of file DWARFAcceleratorTable.cpp.
uint32_t AppleAcceleratorTable::getNumBuckets | ( | ) |
Definition at line 81 of file DWARFAcceleratorTable.cpp.
uint32_t AppleAcceleratorTable::getNumHashes | ( | ) |
Definition at line 82 of file DWARFAcceleratorTable.cpp.
uint32_t AppleAcceleratorTable::getSizeHdr | ( | ) |
Definition at line 83 of file DWARFAcceleratorTable.cpp.
std::pair< uint64_t, dwarf::Tag > AppleAcceleratorTable::readAtoms | ( | uint64_t * | HashDataOffset | ) |
Return information related to the DWARF DIE we're looking for when performing a lookup by name.
HashDataOffset | an offset into the hash data table |
Definition at line 114 of file DWARFAcceleratorTable.cpp.
References llvm::DWARFAcceleratorTable::AccelSection, llvm::dwarf::DW_ATOM_die_offset, llvm::dwarf::DW_ATOM_die_tag, llvm::dwarf::DW_INVALID_OFFSET, llvm::dwarf::DWARF32, llvm::DWARFFormValue::extractValue(), llvm::DWARFFormValue::getAsUnsignedConstant(), and getAtomsDesc().
bool AppleAcceleratorTable::validateForms | ( | ) |
Definition at line 94 of file DWARFAcceleratorTable.cpp.
References llvm::dwarf::DW_ATOM_die_offset, llvm::dwarf::DW_ATOM_die_tag, llvm::dwarf::DW_ATOM_type_flags, llvm::DWARFFormValue::FC_Constant, llvm::DWARFFormValue::FC_Flag, getAtomsDesc(), llvm::DWARFFormValue::getForm(), and llvm::DWARFFormValue::isFormClass().