LLDB mainline
lldb_private::plugin::dwarf::DWARFDebugInfo Class Reference

#include <DWARFDebugInfo.h>

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, 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)
DWARFUnitGetSkeletonUnit (DWARFUnit *dwo_unit)
DWARFTypeUnitGetTypeUnitForHash (uint64_t hash)
bool ContainsTypeUnits ()
DWARFDIE GetDIE (DIERef::Section section, dw_offset_t die_offset)
const DWARFDebugArangesGetCompileUnitAranges ()
const std::shared_ptr< SymbolFileDWARFDwo > & GetDwpSymbolFile ()

Protected Types

typedef std::vector< DWARFUnitSPUnitColl

Protected Attributes

SymbolFileDWARFm_dwarf
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
llvm::DenseMap< uint64_t, DWARFUnit * > m_dwarf5_dwo_id_to_skeleton_unit
llvm::DenseMap< uint64_t, DWARFUnit * > m_dwarf4_dwo_id_to_skeleton_unit
llvm::once_flag m_dwarf4_dwo_id_to_skeleton_unit_once_flag

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(* lldb_private::plugin::dwarf::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

Definition at line 58 of file DWARFDebugInfo.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
eDumpFlag_Verbose 
eDumpFlag_ShowForm 
eDumpFlag_ShowAncestors 

Definition at line 46 of file DWARFDebugInfo.h.

Constructor & Destructor Documentation

◆ DWARFDebugInfo() [1/2]

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

Definition at line 34 of file DWARFDebugInfo.cpp.

References m_context, m_cu_aranges_up, m_dwarf, and m_units.

Referenced by DWARFDebugInfo(), and operator=().

◆ DWARFDebugInfo() [2/2]

lldb_private::plugin::dwarf::DWARFDebugInfo::DWARFDebugInfo ( const DWARFDebugInfo & )
privatedelete

References DWARFDebugInfo().

Member Function Documentation

◆ ContainsTypeUnits()

◆ FindUnitIndex()

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

◆ GetCompileUnitAranges()

◆ GetDIE()

◆ GetDwpSymbolFile()

const std::shared_ptr< SymbolFileDWARFDwo > & DWARFDebugInfo::GetDwpSymbolFile ( )

Definition at line 235 of file DWARFDebugInfo.cpp.

References m_dwarf.

◆ GetNumUnits()

◆ GetSkeletonUnit()

◆ GetTypeUnitForHash()

DWARFTypeUnit * DWARFDebugInfo::GetTypeUnitForHash ( uint64_t hash)

◆ GetUnitAtIndex()

◆ 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 & lldb_private::plugin::dwarf::DWARFDebugInfo::operator= ( const DWARFDebugInfo & )
privatedelete

References DWARFDebugInfo().

◆ ParseUnitHeadersIfNeeded()

◆ ParseUnitsFor()

Member Data Documentation

◆ m_context

DWARFContext& lldb_private::plugin::dwarf::DWARFDebugInfo::m_context
protected

Definition at line 61 of file DWARFDebugInfo.h.

Referenced by DWARFDebugInfo(), GetCompileUnitAranges(), and ParseUnitsFor().

◆ m_cu_aranges_up

std::unique_ptr<DWARFDebugAranges> lldb_private::plugin::dwarf::DWARFDebugInfo::m_cu_aranges_up
protected

Definition at line 67 of file DWARFDebugInfo.h.

Referenced by DWARFDebugInfo(), and GetCompileUnitAranges().

◆ m_dwarf

SymbolFileDWARF& lldb_private::plugin::dwarf::DWARFDebugInfo::m_dwarf
protected

◆ m_dwarf4_dwo_id_to_skeleton_unit

llvm::DenseMap<uint64_t, DWARFUnit *> lldb_private::plugin::dwarf::DWARFDebugInfo::m_dwarf4_dwo_id_to_skeleton_unit
protected

Definition at line 71 of file DWARFDebugInfo.h.

Referenced by GetSkeletonUnit().

◆ m_dwarf4_dwo_id_to_skeleton_unit_once_flag

llvm::once_flag lldb_private::plugin::dwarf::DWARFDebugInfo::m_dwarf4_dwo_id_to_skeleton_unit_once_flag
protected

Definition at line 72 of file DWARFDebugInfo.h.

Referenced by GetSkeletonUnit().

◆ m_dwarf5_dwo_id_to_skeleton_unit

llvm::DenseMap<uint64_t, DWARFUnit *> lldb_private::plugin::dwarf::DWARFDebugInfo::m_dwarf5_dwo_id_to_skeleton_unit
protected

Definition at line 70 of file DWARFDebugInfo.h.

Referenced by GetSkeletonUnit(), and ParseUnitsFor().

◆ m_type_hash_to_unit_index

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

◆ m_units

UnitColl lldb_private::plugin::dwarf::DWARFDebugInfo::m_units
protected

◆ m_units_once_flag

llvm::once_flag lldb_private::plugin::dwarf::DWARFDebugInfo::m_units_once_flag
protected

Definition at line 63 of file DWARFDebugInfo.h.

Referenced by ParseUnitHeadersIfNeeded().


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