LLVM 20.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 . | |
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 . | |
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 49 of file DWARFDebugLoc.h.
|
inline |
Definition at line 51 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 122 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 78 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 169 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 81 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().