class DWARFLocationTable

Declaration

class DWARFLocationTable { /* full declaration omitted */ };

Description

An abstract base class for various kinds of location tables (.debug_loc, .debug_loclists, and their dwo variants).

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h:50

Member Variables

protected llvm::DWARFDataExtractor Data

Method Overview

  • public DWARFLocationTable(llvm::DWARFDataExtractor Data)
  • public bool dumpLocationList(uint64_t * Offset, llvm::raw_ostream & OS, Optional<object::SectionedAddress> BaseAddr, const llvm::MCRegisterInfo * MRI, const llvm::DWARFObject & Obj, llvm::DWARFUnit * U, llvm::DIDumpOptions DumpOpts, unsigned int Indent) const
  • protected virtual void dumpRawEntry(const llvm::DWARFLocationEntry & Entry, llvm::raw_ostream & OS, unsigned int Indent, llvm::DIDumpOptions DumpOpts, const llvm::DWARFObject & Obj) const
  • public const llvm::DWARFDataExtractor & getData()
  • public llvm::Error visitAbsoluteLocationList(uint64_t Offset, Optional<object::SectionedAddress> BaseAddr, std::function<Optional<object::SectionedAddress> (uint32_t)> LookupAddr, function_ref<bool (Expected<llvm::DWARFLocationExpression>)> Callback) const
  • public virtual llvm::Error visitLocationList(uint64_t * Offset, function_ref<bool (const llvm::DWARFLocationEntry &)> Callback) const
  • public virtual ~DWARFLocationTable()

Methods

DWARFLocationTable(llvm::DWARFDataExtractor Data)

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h:52

Parameters

llvm::DWARFDataExtractor Data

bool dumpLocationList(
    uint64_t* Offset,
    llvm::raw_ostream& OS,
    Optional<object::SectionedAddress> BaseAddr,
    const llvm::MCRegisterInfo* MRI,
    const llvm::DWARFObject& Obj,
    llvm::DWARFUnit* U,
    llvm::DIDumpOptions DumpOpts,
    unsigned int Indent) const

Description

Dump the location list at the given \p Offset. The function returns true iff it has successfully reched the end of the list. This means that one can attempt to parse another list after the current one (\p Offset will be updated to point past the end of the current list).

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h:68

Parameters

uint64_t* Offset
llvm::raw_ostream& OS
Optional<object::SectionedAddress> BaseAddr
const llvm::MCRegisterInfo* MRI
const llvm::DWARFObject& Obj
llvm::DWARFUnit* U
llvm::DIDumpOptions DumpOpts
unsigned int Indent

virtual void dumpRawEntry(
    const llvm::DWARFLocationEntry& Entry,
    llvm::raw_ostream& OS,
    unsigned int Indent,
    llvm::DIDumpOptions DumpOpts,
    const llvm::DWARFObject& Obj) const

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h:84

Parameters

const llvm::DWARFLocationEntry& Entry
llvm::raw_ostream& OS
unsigned int Indent
llvm::DIDumpOptions DumpOpts
const llvm::DWARFObject& Obj

const llvm::DWARFDataExtractor& getData()

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h:79

llvm::Error visitAbsoluteLocationList(
    uint64_t Offset,
    Optional<object::SectionedAddress> BaseAddr,
    std::function<
        Optional<object::SectionedAddress>(
            uint32_t)> LookupAddr,
    function_ref<bool(
        Expected<llvm::DWARFLocationExpression>)>
        Callback) const

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h:74

Parameters

uint64_t Offset
Optional<object::SectionedAddress> BaseAddr
std::function<Optional<object::SectionedAddress>( uint32_t)> LookupAddr
function_ref<bool( Expected<llvm::DWARFLocationExpression>)> Callback

virtual llvm::Error visitLocationList(
    uint64_t* Offset,
    function_ref<
        bool(const llvm::DWARFLocationEntry&)>
        Callback) const

Description

Call the user-provided callback for each entry (including the end-of-list entry) in the location list starting at \p Offset. The callback can return false to terminate the iteration early. Returns an error if it was unable to parse the entire location list correctly. Upon successful termination\p Offset will be updated point past the end of the list.

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h:60

Parameters

uint64_t* Offset
function_ref<bool( const llvm::DWARFLocationEntry&)> Callback

virtual ~DWARFLocationTable()

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h:53