LLVM: llvm::DWARFUnitHeader Class Reference (original) (raw)

Base class describing the header of any kind of "unit." Some information is specific to certain unit types. More...

#include "[llvm/DebugInfo/DWARF/DWARFUnit.h](DWARFUnit%5F8h%5Fsource.html)"

Public Member Functions
LLVM_ABI Error extract (DWARFContext &Context, const DWARFDataExtractor &debug_info, uint64_t *offset_ptr, DWARFSectionKind SectionKind)
Parse a unit header from debug_info starting at offset_ptr.
LLVM_ABI Error applyIndexEntry (const DWARFUnitIndex::Entry *Entry)
uint64_t getOffset () const
const dwarf::FormParams & getFormParams () const
uint16_t getVersion () const
dwarf::DwarfFormat getFormat () const
uint8_t getAddressByteSize () const
uint8_t getRefAddrByteSize () const
uint8_t getDwarfOffsetByteSize () const
uint64_t getLength () const
uint64_t getAbbrOffset () const
std::optional< uint64_t > getDWOId () const
void setDWOId (uint64_t Id)
const DWARFUnitIndex::Entry * getIndexEntry () const
uint64_t getTypeHash () const
uint64_t getTypeOffset () const
uint8_t getUnitType () const
bool isTypeUnit () const
uint8_t getSize () const
uint8_t getUnitLengthFieldByteSize () const
uint64_t getNextUnitOffset () const

Base class describing the header of any kind of "unit." Some information is specific to certain unit types.

We separate this class out so we can parse the header before deciding what specific kind of unit to construct.

Definition at line 55 of file DWARFUnit.h.

applyIndexEntry()

extract()

Parse a unit header from debug_info starting at offset_ptr.

Note that [SectionKind](classllvm%5F1%5F1SectionKind.html "SectionKind - This is a simple POD value that classifies the properties of a section.") is used as a hint to guess the unit type for DWARF formats prior to DWARFv5. In DWARFv5 the unit type is explicitly defined in the header and the hint is ignored.

Definition at line 262 of file DWARFUnit.cpp.

References assert(), llvm::DWARFContext::checkAddressSizeSupported(), llvm::createStringError(), llvm::DW_SECT_EXT_TYPES, getAddressByteSize(), llvm::DWARFDataExtractorBase< Relocator >::getInitialLength(), getLength(), llvm::DWARFContext::getMaxSupportedVersion(), getNextUnitOffset(), llvm::DWARFDataExtractorBase< Relocator >::getRelocatedValue(), llvm::DataExtractor::getU16(), llvm::DataExtractor::getU64(), llvm::DataExtractor::getU8(), getUnitLengthFieldByteSize(), llvm::DataExtractor::getUnsigned(), getVersion(), llvm::invalid_argument, llvm::DWARFContext::isSupportedVersion(), isTypeUnit(), llvm::DataExtractor::isValidOffset(), llvm::joinErrors(), llvm::DataExtractor::size(), and llvm::Error::success().

getAbbrOffset()

uint64_t llvm::DWARFUnitHeader::getAbbrOffset ( ) const inline

getAddressByteSize()

uint8_t llvm::DWARFUnitHeader::getAddressByteSize ( ) const inline

getDwarfOffsetByteSize()

uint8_t llvm::DWARFUnitHeader::getDwarfOffsetByteSize ( ) const inline

getDWOId()

std::optional< uint64_t > llvm::DWARFUnitHeader::getDWOId ( ) const inline

getFormat()

getFormParams()

getIndexEntry()

getLength()

uint64_t llvm::DWARFUnitHeader::getLength ( ) const inline

getNextUnitOffset()

uint64_t llvm::DWARFUnitHeader::getNextUnitOffset ( ) const inline

getOffset()

uint64_t llvm::DWARFUnitHeader::getOffset ( ) const inline

getRefAddrByteSize()

uint8_t llvm::DWARFUnitHeader::getRefAddrByteSize ( ) const inline

getSize()

uint8_t llvm::DWARFUnitHeader::getSize ( ) const inline

getTypeHash()

uint64_t llvm::DWARFUnitHeader::getTypeHash ( ) const inline

getTypeOffset()

uint64_t llvm::DWARFUnitHeader::getTypeOffset ( ) const inline

getUnitLengthFieldByteSize()

uint8_t llvm::DWARFUnitHeader::getUnitLengthFieldByteSize ( ) const inline

getUnitType()

uint8_t llvm::DWARFUnitHeader::getUnitType ( ) const inline

getVersion()

uint16_t llvm::DWARFUnitHeader::getVersion ( ) const inline

isTypeUnit()

bool llvm::DWARFUnitHeader::isTypeUnit ( ) const inline

setDWOId()

void llvm::DWARFUnitHeader::setDWOId ( uint64_t Id) inline

The documentation for this class was generated from the following files: