LLDB  mainline
Public Member Functions | Static Public Member Functions | Private Member Functions | Friends | List of all members
DWARFTypeUnit Class Reference

#include <DWARFTypeUnit.h>

Inheritance diagram for DWARFTypeUnit:
Inheritance graph
Collaboration diagram for DWARFTypeUnit:
Collaboration graph

Public Member Functions

void BuildAddressRangeTable (DWARFDebugAranges *debug_aranges) override
void Dump (lldb_private::Stream *s) const override
uint64_t GetTypeHash ()
dw_offset_t GetTypeOffset ()
- Public Member Functions inherited from DWARFUnit
virtual ~DWARFUnit ()
bool IsDWOUnit ()
uint64_t GetDWOId ()
void ExtractUnitDIEIfNeeded ()
void ExtractDIEsIfNeeded ()
ScopedExtractDIEs ExtractDIEsScoped ()
bool Verify (lldb_private::Stream *s) const
const lldb_private::DWARFDataExtractorGetData () const
 Get the data that contains the DIE information for this unit. More...
uint32_t GetHeaderByteSize () const
 Get the size in bytes of the unit header. More...
dw_offset_t GetOffset () const
size_t GetLengthByteSize () const
 Get the size in bytes of the length field in the header. More...
bool ContainsDIEOffset (dw_offset_t die_offset) const
dw_offset_t GetFirstDIEOffset () const
dw_offset_t GetNextUnitOffset () const
size_t GetDebugInfoSize () const
uint32_t GetLength () const
uint16_t GetVersion () const
const DWARFAbbreviationDeclarationSetGetAbbreviations () const
dw_offset_t GetAbbrevOffset () const
uint8_t GetAddressByteSize () const
dw_addr_t GetAddrBase () const
dw_addr_t GetBaseAddress () const
dw_offset_t GetLineTableOffset ()
dw_addr_t GetRangesBase () const
dw_addr_t GetStrOffsetsBase () const
void SetAddrBase (dw_addr_t addr_base)
void SetLoclistsBase (dw_addr_t loclists_base)
void SetRangesBase (dw_addr_t ranges_base)
void SetStrOffsetsBase (dw_offset_t str_offsets_base)
lldb::ByteOrder GetByteOrder () const
const DWARFDebugArangesGetFunctionAranges ()
void SetBaseAddress (dw_addr_t base_addr)
DWARFBaseDIE GetUnitDIEOnly ()
DWARFDIE GetDIE (dw_offset_t die_offset)
DWARFUnitGetNonSkeletonUnit ()
void * GetUserData () const
void SetUserData (void *d)
bool Supports_DW_AT_APPLE_objc_complete_type ()
bool DW_AT_decl_file_attributes_are_invalid ()
bool Supports_unnamed_objc_bitfields ()
SymbolFileDWARFGetSymbolFileDWARF () const
DWARFProducer GetProducer ()
uint32_t GetProducerVersionMajor ()
uint32_t GetProducerVersionMinor ()
uint32_t GetProducerVersionUpdate ()
uint64_t GetDWARFLanguageType ()
bool GetIsOptimized ()
const lldb_private::FileSpecGetCompilationDirectory ()
const lldb_private::FileSpecGetAbsolutePath ()
lldb_private::FileSpec GetFile (size_t file_idx)
lldb_private::FileSpec::Style GetPathStyle ()
SymbolFileDWARFDwoGetDwoSymbolFile ()
die_iterator_range dies ()
DIERef::Section GetDebugSection () const
uint8_t GetUnitType () const
bool IsTypeUnit () const
llvm::Optional< uint64_t > GetStringOffsetSectionItem (uint32_t index) const
llvm::Expected< DWARFRangeListFindRnglistFromOffset (dw_offset_t offset)
 Return a list of address ranges resulting from a (possibly encoded) range list starting at a given offset in the appropriate ranges section. More...
llvm::Expected< DWARFRangeListFindRnglistFromIndex (uint32_t index)
 Return a list of address ranges retrieved from an encoded range list whose offset is found via a table lookup given an index (DWARF v5 and later). More...
llvm::Expected< uint64_t > GetRnglistOffset (uint32_t Index)
 Return a rangelist's offset based on an index. More...
llvm::Optional< uint64_t > GetLoclistOffset (uint32_t Index)
std::unique_ptr< llvm::DWARFLocationTable > GetLocationTable (const lldb_private::DataExtractor &data) const
 Return the location table for parsing the given location list data. More...
lldb_private::DWARFDataExtractor GetLocationData () const
- Public Member Functions inherited from lldb_private::UserID
 UserID (lldb::user_id_t uid=LLDB_INVALID_UID)
 Construct with optional user ID. More...
 ~UserID ()
 Destructor. More...
void Clear ()
 Clears the object state. More...
lldb::user_id_t GetID () const
 Get accessor for the user ID. More...
void SetID (lldb::user_id_t uid)
 Set accessor for the user ID. More...

Static Public Member Functions

static bool classof (const DWARFUnit *unit)
- Static Public Member Functions inherited from DWARFUnit
static llvm::Expected< DWARFUnitSPextract (SymbolFileDWARF &dwarf2Data, lldb::user_id_t uid, const lldb_private::DWARFDataExtractor &debug_info, DIERef::Section section, lldb::offset_t *offset_ptr)
static uint8_t GetAddressByteSize (const DWARFUnit *cu)
static uint8_t GetDefaultAddressSize ()

Private Member Functions

 DWARFTypeUnit (SymbolFileDWARF &dwarf, lldb::user_id_t uid, const DWARFUnitHeader &header, const DWARFAbbreviationDeclarationSet &abbrevs, DIERef::Section section, bool is_dwo)


class DWARFUnit

Additional Inherited Members

- Protected Member Functions inherited from DWARFUnit
 DWARFUnit (SymbolFileDWARF &dwarf, lldb::user_id_t uid, const DWARFUnitHeader &header, const DWARFAbbreviationDeclarationSet &abbrevs, DIERef::Section section, bool is_dwo)
llvm::Error ExtractHeader (SymbolFileDWARF &dwarf, const lldb_private::DWARFDataExtractor &data, lldb::offset_t *offset_ptr)
const DWARFDebugInfoEntryGetUnitDIEPtrOnly ()
const DWARFDebugInfoEntryDIEPtr ()
const llvm::Optional< llvm::DWARFDebugRnglistTable > & GetRnglist ()
- Protected Attributes inherited from DWARFUnit
std::shared_ptr< DWARFUnitm_dwo
DWARFUnitHeader m_header
const DWARFAbbreviationDeclarationSetm_abbrevs = nullptr
void * m_user_data = nullptr
DWARFDebugInfoEntry::collection m_die_array
llvm::sys::RWMutex m_die_array_mutex
llvm::sys::RWMutex m_die_array_scoped_mutex
std::atomic< bool > m_cancel_scopes
DWARFDebugInfoEntry m_first_die
llvm::sys::RWMutex m_first_die_mutex
std::unique_ptr< DWARFDebugArangesm_func_aranges_up
dw_addr_t m_base_addr = 0
DWARFProducer m_producer = eProducerInvalid
uint32_t m_producer_version_major = 0
uint32_t m_producer_version_minor = 0
uint32_t m_producer_version_update = 0
llvm::Optional< uint64_t > m_language_type
lldb_private::LazyBool m_is_optimized = lldb_private::eLazyBoolCalculate
llvm::Optional< lldb_private::FileSpecm_comp_dir
llvm::Optional< lldb_private::FileSpecm_file_spec
dw_addr_t m_addr_base = 0
 Value of DW_AT_addr_base. More...
dw_addr_t m_loclists_base = 0
 Value of DW_AT_loclists_base. More...
dw_addr_t m_ranges_base = 0
 Value of DW_AT_rnglists_base. More...
dw_offset_t m_line_table_offset = DW_INVALID_OFFSET
 Value of DW_AT_stmt_list. More...
dw_offset_t m_str_offsets_base = 0
llvm::Optional< llvm::DWARFDebugRnglistTable > m_rnglist_table
bool m_rnglist_table_done = false
llvm::Optional< llvm::DWARFListTableHeader > m_loclist_table_header
const DIERef::Section m_section
bool m_is_dwo
uint64_t m_dwo_id
 Value of DW_AT_GNU_dwo_id (v4) or dwo_id from CU header (v5). More...
- Protected Attributes inherited from lldb_private::UserID
lldb::user_id_t m_uid
 The user ID that uniquely identifies an object. More...

Detailed Description

Definition at line 15 of file DWARFTypeUnit.h.

Constructor & Destructor Documentation

◆ DWARFTypeUnit()

DWARFTypeUnit::DWARFTypeUnit ( SymbolFileDWARF dwarf,
lldb::user_id_t  uid,
const DWARFUnitHeader header,
const DWARFAbbreviationDeclarationSet abbrevs,
DIERef::Section  section,
bool  is_dwo 

Definition at line 28 of file DWARFTypeUnit.h.

Member Function Documentation

◆ BuildAddressRangeTable()

void DWARFTypeUnit::BuildAddressRangeTable ( DWARFDebugAranges debug_aranges)

Implements DWARFUnit.

Definition at line 17 of file DWARFTypeUnit.h.

◆ classof()

static bool DWARFTypeUnit::classof ( const DWARFUnit unit)

Definition at line 25 of file DWARFTypeUnit.h.

References DWARFUnit::IsTypeUnit().

◆ Dump()

void DWARFTypeUnit::Dump ( lldb_private::Stream s) const

Implements DWARFUnit.

Definition at line 17 of file DWARFTypeUnit.cpp.

References lldb_private::Stream::Printf().

◆ GetTypeHash()

uint64_t DWARFTypeUnit::GetTypeHash ( )

Definition at line 21 of file DWARFTypeUnit.h.

References DWARFUnitHeader::GetTypeHash(), and DWARFUnit::m_header.

◆ GetTypeOffset()

dw_offset_t DWARFTypeUnit::GetTypeOffset ( )

Friends And Related Function Documentation


friend class DWARFUnit

Definition at line 34 of file DWARFTypeUnit.h.

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