Go to the documentation of this file.
9 #ifndef LLVM_DEBUGINFO_DWARF_DWARFDEBUGLOC_H
10 #define LLVM_DEBUGINFO_DWARF_DWARFDEBUGLOC_H
24 struct DWARFLocationExpression;
72 unsigned Indent)
const;
167 #endif // LLVM_DEBUGINFO_DWARF_DWARFDEBUGLOC_H
This is an optimization pass for GlobalISel generic memory operations.
DWARFLocationTable(DWARFDataExtractor Data)
uint64_t Value0
The first value of the location entry (if applicable).
uint8_t Kind
The entry kind (DW_LLE_***).
virtual ~DWARFLocationTable()=default
An abstract base class for various kinds of location tables (.debug_loc, .debug_loclists,...
Tagged union holding either a T or a Error.
LoclistEntries
DWARF v5 loc list entry encoding values.
DWARFDebugLoclists(DWARFDataExtractor Data, uint16_t Version)
uint64_t SectionIndex
The index of the section this entry is relative to (if applicable).
void dumpRawEntry(const DWARFLocationEntry &Entry, raw_ostream &OS, unsigned Indent, DIDumpOptions DumpOpts, const DWARFObject &Obj) const override
A single location within a location list.
bool dumpLocationList(uint64_t *Offset, raw_ostream &OS, Optional< object::SectionedAddress > BaseAddr, const MCRegisterInfo *MRI, const DWARFObject &Obj, DWARFUnit *U, DIDumpOptions DumpOpts, unsigned Indent) const
Dump the location list at the given Offset.
This class implements an extremely fast bulk output stream that can only output to a stream.
SmallVector< DWARFLocationEntry, 2 > Entries
All the locations in which the variable is stored.
uint64_t Offset
The beginning offset where this location list is stored in the debug_loc section.
An efficient, type-erasing, non-owning reference to a callable.
bar al al movzbl eax ret Missed when stored in a memory object
void log(raw_ostream &OS) const override
Print an error message to an output stream.
Error visitAbsoluteLocationList(uint64_t Offset, Optional< object::SectionedAddress > BaseAddr, std::function< Optional< object::SectionedAddress >(uint32_t)> LookupAddr, function_ref< bool(Expected< DWARFLocationExpression >)> Callback) const
ResolverError(uint32_t Index, dwarf::LoclistEntries Kind)
const DWARFDataExtractor & getData()
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
print Print MemDeps of function
Base class for user error types.
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...
DWARFDebugLoc(DWARFDataExtractor Data)
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
void dump(raw_ostream &OS, const MCRegisterInfo *RegInfo, const DWARFObject &Obj, DIDumpOptions DumpOpts, Optional< uint64_t > Offset) const
Print the location lists found within the debug_loc section.
unsigned const MachineRegisterInfo * MRI
Lightweight error class with error context and mandatory checking.
Error visitLocationList(uint64_t *Offset, function_ref< bool(const DWARFLocationEntry &)> Callback) const override
Call the user-provided callback for each entry (including the end-of-list entry) in the location list...
virtual void dumpRawEntry(const DWARFLocationEntry &Entry, raw_ostream &OS, unsigned Indent, DIDumpOptions DumpOpts, const DWARFObject &Obj) const =0
A list of locations that contain one variable.
std::error_code convertToErrorCode() const override
Convert this error to a std::error_code.
void dumpRange(uint64_t StartOffset, uint64_t Size, raw_ostream &OS, const MCRegisterInfo *MRI, const DWARFObject &Obj, DIDumpOptions DumpOpts)
Dump all location lists within the given range.
uint64_t Value1
The second value of the location entry (if applicable).
Error visitLocationList(uint64_t *Offset, function_ref< bool(const DWARFLocationEntry &)> Callback) const override
Call the user-provided callback for each entry (including the end-of-list entry) in the location list...
void dumpRawEntry(const DWARFLocationEntry &Entry, raw_ostream &OS, unsigned Indent, DIDumpOptions DumpOpts, const DWARFObject &Obj) const override
SmallVector< uint8_t, 4 > Loc
The location expression itself (if applicable).
Container for dump options that control which debug information will be dumped.