class DWARFListTableBase
Declaration
template <typename DWARFListType>
class DWARFListTableBase { /* full declaration omitted */ };
Description
A class representing a table of lists as specified in the DWARF v5 standard for location lists and range lists. The table consists of a header followed by an array of offsets into a DWARF section, followed by zero or more list entries. The list entries are kept in a map where the keys are the lists' section offsets.
Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:146
Templates
- DWARFListType
Member Variables
- private llvm::DWARFListTableHeader Header
- private std::map<uint64_t, DWARFListType> ListMap
- A mapping between file offsets and lists. It is used to find a particular list based on an offset (obtained from DW_AT_ranges, for example).
- private llvm::StringRef HeaderString
- This string is displayed as a heading before the list is dumped (e.g. "ranges:").
Method Overview
- protected DWARFListTableBase<DWARFListType>(llvm::StringRef SectionName, llvm::StringRef HeaderString, llvm::StringRef ListTypeString)
- public void clear()
- public void dump(llvm::DWARFDataExtractor Data, llvm::raw_ostream & OS, llvm::function_ref<Optional<object::SectionedAddress> (uint32_t)> LookupPooledAddress, llvm::DIDumpOptions DumpOpts = {}) const
- public llvm::Error extract(llvm::DWARFDataExtractor Data, uint64_t * OffsetPtr)
- public llvm::Error extractHeaderAndOffsets(llvm::DWARFDataExtractor Data, uint64_t * OffsetPtr)
- public Expected<DWARFListType> findList(llvm::DWARFDataExtractor Data, uint64_t Offset) const
- public uint8_t getAddrSize() const
- public dwarf::DwarfFormat getFormat() const
- public uint64_t getHeaderOffset() const
- public uint8_t getHeaderSize() const
- public Optional<uint64_t> getOffsetEntry(llvm::DataExtractor Data, uint32_t Index) const
- public uint32_t getOffsetEntryCount() const
- public uint64_t length()
Methods
¶DWARFListTableBase<DWARFListType>(
llvm::StringRef SectionName,
llvm::StringRef HeaderString,
llvm::StringRef ListTypeString)
DWARFListTableBase<DWARFListType>(
llvm::StringRef SectionName,
llvm::StringRef HeaderString,
llvm::StringRef ListTypeString)
Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:156
Parameters
- llvm::StringRef SectionName
- llvm::StringRef HeaderString
- llvm::StringRef ListTypeString
¶void clear()
void clear()
Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:161
¶void dump(llvm::DWARFDataExtractor Data,
llvm::raw_ostream& OS,
llvm::function_ref<
Optional<object::SectionedAddress>(
uint32_t)> LookupPooledAddress,
llvm::DIDumpOptions DumpOpts = {}) const
void dump(llvm::DWARFDataExtractor Data,
llvm::raw_ostream& OS,
llvm::function_ref<
Optional<object::SectionedAddress>(
uint32_t)> LookupPooledAddress,
llvm::DIDumpOptions DumpOpts = {}) const
Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:181
Parameters
- llvm::DWARFDataExtractor Data
- llvm::raw_ostream& OS
- llvm::function_ref< Optional<object::SectionedAddress>(uint32_t)> LookupPooledAddress
- llvm::DIDumpOptions DumpOpts = {}
¶llvm::Error extract(llvm::DWARFDataExtractor Data,
uint64_t* OffsetPtr)
llvm::Error extract(llvm::DWARFDataExtractor Data,
uint64_t* OffsetPtr)
Description
Extract an entire table, including all list entries.
Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:170
Parameters
- llvm::DWARFDataExtractor Data
- uint64_t* OffsetPtr
¶llvm::Error extractHeaderAndOffsets(
llvm::DWARFDataExtractor Data,
uint64_t* OffsetPtr)
llvm::Error extractHeaderAndOffsets(
llvm::DWARFDataExtractor Data,
uint64_t* OffsetPtr)
Description
Extract the table header and the array of offsets.
Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:166
Parameters
- llvm::DWARFDataExtractor Data
- uint64_t* OffsetPtr
¶Expected<DWARFListType> findList(
llvm::DWARFDataExtractor Data,
uint64_t Offset) const
Expected<DWARFListType> findList(
llvm::DWARFDataExtractor Data,
uint64_t Offset) const
Description
Look up a list based on a given offset. Extract it and enter it into the list map if necessary.
Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:173
Parameters
- llvm::DWARFDataExtractor Data
- uint64_t Offset
¶uint8_t getAddrSize() const
uint8_t getAddrSize() const
Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:177
¶dwarf::DwarfFormat getFormat() const
dwarf::DwarfFormat getFormat() const
Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:179
¶uint64_t getHeaderOffset() const
uint64_t getHeaderOffset() const
Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:176
¶uint8_t getHeaderSize() const
uint8_t getHeaderSize() const
Description
Return the size of the table header including the length but not including the offsets. This is dependent on the table format, which is unambiguously derived from parsing the table.
Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:193
¶Optional<uint64_t> getOffsetEntry(
llvm::DataExtractor Data,
uint32_t Index) const
Optional<uint64_t> getOffsetEntry(
llvm::DataExtractor Data,
uint32_t Index) const
Description
Return the contents of the offset entry designated by a given index.
Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:187
Parameters
- llvm::DataExtractor Data
- uint32_t Index
¶uint32_t getOffsetEntryCount() const
uint32_t getOffsetEntryCount() const
Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:178
¶uint64_t length()
uint64_t length()
Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:197