#include "llvm/DebugInfo/DWARF/DWARFDebugLoc.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/DebugInfo/DIContext.h"
#include "llvm/DebugInfo/DWARF/DWARFAddressRange.h"
#include "llvm/DebugInfo/DWARF/DWARFExpression.h"
#include "llvm/DebugInfo/DWARF/DWARFFormValue.h"
#include "llvm/DebugInfo/DWARF/DWARFLocationExpression.h"
#include "llvm/DebugInfo/DWARF/DWARFUnit.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cinttypes>
#include <cstdint>
usingnamespacellvm;
SectionedAddress;
namespace llvm {
class DWARFObject;
}
namespace {
class DWARFLocationInterpreter { … };
}
static Error createResolverError(uint32_t Index, unsigned Kind) { … }
Expected<std::optional<DWARFLocationExpression>>
DWARFLocationInterpreter::Interpret(const DWARFLocationEntry &E) { … }
static void dumpExpression(raw_ostream &OS, DIDumpOptions DumpOpts,
ArrayRef<uint8_t> Data, bool IsLittleEndian,
unsigned AddressSize, DWARFUnit *U) { … }
bool DWARFLocationTable::dumpLocationList(
uint64_t *Offset, raw_ostream &OS, std::optional<SectionedAddress> BaseAddr,
const DWARFObject &Obj, DWARFUnit *U, DIDumpOptions DumpOpts,
unsigned Indent) const { … }
Error DWARFLocationTable::visitAbsoluteLocationList(
uint64_t Offset, std::optional<SectionedAddress> BaseAddr,
std::function<std::optional<SectionedAddress>(uint32_t)> LookupAddr,
function_ref<bool(Expected<DWARFLocationExpression>)> Callback) const { … }
void DWARFDebugLoc::dump(raw_ostream &OS, const DWARFObject &Obj,
DIDumpOptions DumpOpts,
std::optional<uint64_t> DumpOffset) const { … }
Error DWARFDebugLoc::visitLocationList(
uint64_t *Offset,
function_ref<bool(const DWARFLocationEntry &)> Callback) const { … }
void DWARFDebugLoc::dumpRawEntry(const DWARFLocationEntry &Entry,
raw_ostream &OS, unsigned Indent,
DIDumpOptions DumpOpts,
const DWARFObject &Obj) const { … }
Error DWARFDebugLoclists::visitLocationList(
uint64_t *Offset, function_ref<bool(const DWARFLocationEntry &)> F) const { … }
void DWARFDebugLoclists::dumpRawEntry(const DWARFLocationEntry &Entry,
raw_ostream &OS, unsigned Indent,
DIDumpOptions DumpOpts,
const DWARFObject &Obj) const { … }
void DWARFDebugLoclists::dumpRange(uint64_t StartOffset, uint64_t Size,
raw_ostream &OS, const DWARFObject &Obj,
DIDumpOptions DumpOpts) { … }
void llvm::ResolverError::log(raw_ostream &OS) const { … }
char llvm::ResolverError::ID;