#include "DWARFDIE.h"
#include "DWARFASTParser.h"
#include "DWARFDebugInfo.h"
#include "DWARFDebugInfoEntry.h"
#include "DWARFDeclContext.h"
#include "DWARFUnit.h"
#include "lldb/Symbol/Type.h"
#include "llvm/ADT/iterator.h"
#include "llvm/BinaryFormat/Dwarf.h"
usingnamespacelldb_private;
usingnamespacelldb_private::dwarf;
usingnamespacelldb_private::plugin::dwarf;
namespace {
class ElaboratingDIEIterator
: public llvm::iterator_facade_base<
ElaboratingDIEIterator, std::input_iterator_tag, DWARFDIE,
std::ptrdiff_t, DWARFDIE *, DWARFDIE *> { … };
llvm::iterator_range<ElaboratingDIEIterator>
elaborating_dies(const DWARFDIE &die) { … }
}
DWARFDIE
DWARFDIE::GetParent() const { … }
DWARFDIE
DWARFDIE::GetFirstChild() const { … }
DWARFDIE
DWARFDIE::GetSibling() const { … }
DWARFDIE
DWARFDIE::GetReferencedDIE(const dw_attr_t attr) const { … }
DWARFDIE
DWARFDIE::GetDIE(dw_offset_t die_offset) const { … }
DWARFDIE
DWARFDIE::GetAttributeValueAsReferenceDIE(const dw_attr_t attr) const { … }
DWARFDIE
DWARFDIE::LookupDeepestBlock(lldb::addr_t address) const { … }
const char *DWARFDIE::GetMangledName() const { … }
const char *DWARFDIE::GetPubname() const { … }
void DWARFDIE::GetName(Stream &s) const { … }
void DWARFDIE::AppendTypeName(Stream &s) const { … }
lldb_private::Type *DWARFDIE::ResolveType() const { … }
lldb_private::Type *DWARFDIE::ResolveTypeUID(const DWARFDIE &die) const { … }
static void GetDeclContextImpl(DWARFDIE die,
llvm::SmallSet<lldb::user_id_t, 4> &seen,
std::vector<CompilerContext> &context) { … }
std::vector<CompilerContext> DWARFDIE::GetDeclContext() const { … }
static void GetTypeLookupContextImpl(DWARFDIE die,
llvm::SmallSet<lldb::user_id_t, 4> &seen,
std::vector<CompilerContext> &context) { … }
std::vector<CompilerContext> DWARFDIE::GetTypeLookupContext() const { … }
static DWARFDeclContext GetDWARFDeclContextImpl(DWARFDIE die) { … }
DWARFDeclContext DWARFDIE::GetDWARFDeclContext() const { … }
static DWARFDIE GetParentDeclContextDIEImpl(DWARFDIE die) { … }
DWARFDIE
DWARFDIE::GetParentDeclContextDIE() const { … }
bool DWARFDIE::IsStructUnionOrClass() const { … }
bool DWARFDIE::IsMethod() const { … }
bool DWARFDIE::GetDIENamesAndRanges(
const char *&name, const char *&mangled, DWARFRangeList &ranges,
std::optional<int> &decl_file, std::optional<int> &decl_line,
std::optional<int> &decl_column, std::optional<int> &call_file,
std::optional<int> &call_line, std::optional<int> &call_column,
lldb_private::DWARFExpressionList *frame_base) const { … }
llvm::iterator_range<DWARFDIE::child_iterator> DWARFDIE::children() const { … }