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)

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:156

Parameters

llvm::StringRef SectionName
llvm::StringRef HeaderString
llvm::StringRef ListTypeString

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

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)

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)

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

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

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:177

dwarf::DwarfFormat getFormat() const

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:179

uint64_t getHeaderOffset() const

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:176

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

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

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:178

uint64_t length()

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h:197