LLDB  mainline
Public Types | Public Member Functions | Protected Types | Protected Attributes | Private Member Functions | List of all members
DWARFDebugInfo Class Reference

#include <DWARFDebugInfo.h>

Collaboration diagram for DWARFDebugInfo:
Collaboration graph
[legend]

Public Types

enum  { eDumpFlag_Verbose = (1 << 0), eDumpFlag_ShowForm = (1 << 1), eDumpFlag_ShowAncestors }
 
typedef dw_offset_t(* Callback) (SymbolFileDWARF *dwarf2Data, DWARFUnit *cu, DWARFDebugInfoEntry *die, const dw_offset_t next_offset, const uint32_t depth, void *userData)
 

Public Member Functions

 DWARFDebugInfo (SymbolFileDWARF &dwarf, lldb_private::DWARFContext &context)
 
size_t GetNumUnits ()
 
DWARFUnitGetUnitAtIndex (size_t idx)
 
DWARFUnitGetUnitAtOffset (DIERef::Section section, dw_offset_t cu_offset, uint32_t *idx_ptr=nullptr)
 
DWARFUnitGetUnitContainingDIEOffset (DIERef::Section section, dw_offset_t die_offset)
 
DWARFUnitGetUnit (const DIERef &die_ref)
 
DWARFTypeUnitGetTypeUnitForHash (uint64_t hash)
 
bool ContainsTypeUnits ()
 
DWARFDIE GetDIEForDIEOffset (DIERef::Section section, dw_offset_t die_offset)
 
DWARFDIE GetDIE (const DIERef &die_ref)
 
llvm::Expected< DWARFDebugAranges & > GetCompileUnitAranges ()
 

Protected Types

typedef std::vector< DWARFUnitSPUnitColl
 

Protected Attributes

SymbolFileDWARFm_dwarf
 
lldb_private::DWARFContextm_context
 
llvm::once_flag m_units_once_flag
 
UnitColl m_units
 
std::unique_ptr< DWARFDebugArangesm_cu_aranges_up
 
std::vector< std::pair< uint64_t, uint32_t > > m_type_hash_to_unit_index
 

Private Member Functions

void ParseUnitHeadersIfNeeded ()
 
void ParseUnitsFor (DIERef::Section section)
 
uint32_t FindUnitIndex (DIERef::Section section, dw_offset_t offset)
 
 DWARFDebugInfo (const DWARFDebugInfo &)=delete
 
const DWARFDebugInfooperator= (const DWARFDebugInfo &)=delete
 

Detailed Description

Definition at line 26 of file DWARFDebugInfo.h.

Member Typedef Documentation

◆ Callback

typedef dw_offset_t(* DWARFDebugInfo::Callback) (SymbolFileDWARF *dwarf2Data, DWARFUnit *cu, DWARFDebugInfoEntry *die, const dw_offset_t next_offset, const uint32_t depth, void *userData)

Definition at line 28 of file DWARFDebugInfo.h.

◆ UnitColl

typedef std::vector<DWARFUnitSP> DWARFDebugInfo::UnitColl
protected

Definition at line 60 of file DWARFDebugInfo.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
eDumpFlag_Verbose 
eDumpFlag_ShowForm 
eDumpFlag_ShowAncestors 

Definition at line 50 of file DWARFDebugInfo.h.

Constructor & Destructor Documentation

◆ DWARFDebugInfo() [1/2]

DWARFDebugInfo::DWARFDebugInfo ( SymbolFileDWARF dwarf,
lldb_private::DWARFContext context 
)
explicit

Definition at line 33 of file DWARFDebugInfo.cpp.

◆ DWARFDebugInfo() [2/2]

DWARFDebugInfo::DWARFDebugInfo ( const DWARFDebugInfo )
privatedelete

Member Function Documentation

◆ ContainsTypeUnits()

bool DWARFDebugInfo::ContainsTypeUnits ( )

◆ FindUnitIndex()

uint32_t DWARFDebugInfo::FindUnitIndex ( DIERef::Section  section,
dw_offset_t  offset 
)
private

◆ GetCompileUnitAranges()

llvm::Expected< DWARFDebugAranges & > DWARFDebugInfo::GetCompileUnitAranges ( )

◆ GetDIE()

DWARFDIE DWARFDebugInfo::GetDIE ( const DIERef die_ref)

◆ GetDIEForDIEOffset()

DWARFDIE DWARFDebugInfo::GetDIEForDIEOffset ( DIERef::Section  section,
dw_offset_t  die_offset 
)

Definition at line 184 of file DWARFDebugInfo.cpp.

References DWARFUnit::GetDIE(), and GetUnitContainingDIEOffset().

◆ GetNumUnits()

size_t DWARFDebugInfo::GetNumUnits ( )

◆ GetTypeUnitForHash()

DWARFTypeUnit * DWARFDebugInfo::GetTypeUnitForHash ( uint64_t  hash)

Definition at line 170 of file DWARFDebugInfo.cpp.

References GetUnitAtIndex(), and m_type_hash_to_unit_index.

Referenced by DWARFFormValue::Reference().

◆ GetUnit()

DWARFUnit * DWARFDebugInfo::GetUnit ( const DIERef die_ref)

Definition at line 156 of file DWARFDebugInfo.cpp.

References DIERef::die_offset(), GetUnitContainingDIEOffset(), and DIERef::section().

Referenced by GetDIE().

◆ GetUnitAtIndex()

DWARFUnit * DWARFDebugInfo::GetUnitAtIndex ( size_t  idx)

◆ GetUnitAtOffset()

DWARFUnit * DWARFDebugInfo::GetUnitAtOffset ( DIERef::Section  section,
dw_offset_t  cu_offset,
uint32_t idx_ptr = nullptr 
)

◆ GetUnitContainingDIEOffset()

DWARFUnit * DWARFDebugInfo::GetUnitContainingDIEOffset ( DIERef::Section  section,
dw_offset_t  die_offset 
)

◆ operator=()

const DWARFDebugInfo& DWARFDebugInfo::operator= ( const DWARFDebugInfo )
privatedelete

◆ ParseUnitHeadersIfNeeded()

void DWARFDebugInfo::ParseUnitHeadersIfNeeded ( )
private

◆ ParseUnitsFor()

void DWARFDebugInfo::ParseUnitsFor ( DIERef::Section  section)
private

Member Data Documentation

◆ m_context

lldb_private::DWARFContext& DWARFDebugInfo::m_context
protected

Definition at line 63 of file DWARFDebugInfo.h.

Referenced by GetCompileUnitAranges(), and ParseUnitsFor().

◆ m_cu_aranges_up

std::unique_ptr<DWARFDebugAranges> DWARFDebugInfo::m_cu_aranges_up
protected

Definition at line 69 of file DWARFDebugInfo.h.

Referenced by GetCompileUnitAranges().

◆ m_dwarf

SymbolFileDWARF& DWARFDebugInfo::m_dwarf
protected

Definition at line 62 of file DWARFDebugInfo.h.

Referenced by ParseUnitsFor().

◆ m_type_hash_to_unit_index

std::vector<std::pair<uint64_t, uint32_t> > DWARFDebugInfo::m_type_hash_to_unit_index
protected

◆ m_units

UnitColl DWARFDebugInfo::m_units
protected

Definition at line 66 of file DWARFDebugInfo.h.

Referenced by FindUnitIndex(), GetNumUnits(), GetUnitAtIndex(), and ParseUnitsFor().

◆ m_units_once_flag

llvm::once_flag DWARFDebugInfo::m_units_once_flag
protected

Definition at line 65 of file DWARFDebugInfo.h.

Referenced by ParseUnitHeadersIfNeeded().


The documentation for this class was generated from the following files: