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:139

Templates

DWARFListType

Method Overview

  • protected DWARFListTableBase<DWARFListType>(llvm::StringRef SectionName, llvm::StringRef HeaderString, llvm::StringRef ListTypeString)
  • public void clear()
  • public void dump(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)
  • 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(uint32_t Index) 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:149

Parameters

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

void clear()

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

void dump(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:172

Parameters

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:163

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:159

Parameters

llvm::DWARFDataExtractor Data
uint64_t* OffsetPtr

Expected<DWARFListType> findList(
    llvm::DWARFDataExtractor Data,
    uint64_t Offset)

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:166

Parameters

llvm::DWARFDataExtractor Data
uint64_t Offset

uint8_t getAddrSize() const

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

dwarf::DwarfFormat getFormat() const

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

uint64_t getHeaderOffset() const

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

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:184

Optional<uint64_t> getOffsetEntry(
    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:178

Parameters

uint32_t Index

uint64_t length()

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