LLVM 22.0.0git
|
An abstract base class for various kinds of location tables (.debug_loc, .debug_loclists, and their dwo variants). More...
#include "llvm/DebugInfo/DWARF/DWARFDebugLoc.h"
Public Member Functions | |
DWARFLocationTable (DWARFDataExtractor Data) | |
virtual | ~DWARFLocationTable ()=default |
virtual Error | visitLocationList (uint64_t *Offset, function_ref< bool(const DWARFLocationEntry &)> Callback) const =0 |
Call the user-provided callback for each entry (including the end-of-list entry) in the location list starting at Offset . | |
LLVM_ABI bool | dumpLocationList (uint64_t *Offset, raw_ostream &OS, std::optional< object::SectionedAddress > BaseAddr, const DWARFObject &Obj, DWARFUnit *U, DIDumpOptions DumpOpts, unsigned Indent) const |
Dump the location list at the given Offset . | |
LLVM_ABI Error | visitAbsoluteLocationList (uint64_t Offset, std::optional< object::SectionedAddress > BaseAddr, std::function< std::optional< object::SectionedAddress >(uint32_t)> LookupAddr, function_ref< bool(Expected< DWARFLocationExpression >)> Callback) const |
const DWARFDataExtractor & | getData () |
Protected Member Functions | |
virtual void | dumpRawEntry (const DWARFLocationEntry &Entry, raw_ostream &OS, unsigned Indent, DIDumpOptions DumpOpts, const DWARFObject &Obj) const =0 |
Protected Attributes | |
DWARFDataExtractor | Data |
An abstract base class for various kinds of location tables (.debug_loc, .debug_loclists, and their dwo variants).
Definition at line 50 of file DWARFDebugLoc.h.
|
inline |
Definition at line 52 of file DWARFDebugLoc.h.
|
virtualdefault |
bool DWARFLocationTable::dumpLocationList | ( | uint64_t * | Offset, |
raw_ostream & | OS, | ||
std::optional< object::SectionedAddress > | BaseAddr, | ||
const DWARFObject & | Obj, | ||
DWARFUnit * | U, | ||
DIDumpOptions | DumpOpts, | ||
unsigned | Indent | ||
) | const |
Dump the location list at the given 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 (Offset
will be updated to point past the end of the current list).
Definition at line 124 of file DWARFDebugLoc.cpp.
References llvm::consumeError(), Data, llvm::DIDumpOptions::DisplayRawContents, dumpRawEntry(), llvm::format(), llvm::Expected< T >::get(), llvm::DataExtractor::getAddressSize(), if(), llvm::raw_ostream::indent(), llvm::Offset, OS, llvm::DIDumpOptions::RecoverableErrorHandler, llvm::Expected< T >::takeError(), and visitLocationList().
Referenced by llvm::DWARFDebugLoc::dump(), llvm::DWARFContext::dump(), dumpLoclistsSection(), and llvm::DWARFDebugLoclists::dumpRange().
|
protectedpure virtual |
Implemented in llvm::DWARFDebugLoc, and llvm::DWARFDebugLoclists.
Referenced by dumpLocationList().
|
inline |
Definition at line 80 of file DWARFDebugLoc.h.
References Data.
Error DWARFLocationTable::visitAbsoluteLocationList | ( | uint64_t | Offset, |
std::optional< object::SectionedAddress > | BaseAddr, | ||
std::function< std::optional< object::SectionedAddress >(uint32_t)> | LookupAddr, | ||
function_ref< bool(Expected< DWARFLocationExpression >)> | Callback | ||
) | const |
Definition at line 171 of file DWARFDebugLoc.cpp.
References if(), llvm::Offset, llvm::Expected< T >::takeError(), and visitLocationList().
Referenced by llvm::DWARFUnit::findLoclistFromOffset().
|
pure virtual |
Call the user-provided callback for each entry (including the end-of-list entry) in the location list starting at 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 Offset
will be updated point past the end of the list.
Implemented in llvm::DWARFDebugLoc, and llvm::DWARFDebugLoclists.
Referenced by dumpLocationList(), and visitAbsoluteLocationList().
|
protected |
Definition at line 83 of file DWARFDebugLoc.h.
Referenced by llvm::DWARFDebugLoc::dump(), dumpLocationList(), llvm::DWARFDebugLoclists::dumpRange(), llvm::DWARFDebugLoc::dumpRawEntry(), llvm::DWARFDebugLoclists::dumpRawEntry(), getData(), llvm::DWARFDebugLoc::visitLocationList(), and llvm::DWARFDebugLoclists::visitLocationList().