diff options
Diffstat (limited to 'source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp')
-rw-r--r-- | source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp | 149 |
1 files changed, 66 insertions, 83 deletions
diff --git a/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp b/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp index 14603aa460c9..c14ebd1628be 100644 --- a/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp +++ b/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp @@ -20,120 +20,103 @@ using namespace lldb; using namespace lldb_private; -SymbolFileDWARFDwo::SymbolFileDWARFDwo(ObjectFileSP objfile, DWARFCompileUnit* dwarf_cu) : - SymbolFileDWARF(objfile.get()), - m_obj_file_sp(objfile), - m_base_dwarf_cu(dwarf_cu) -{ - SetID(((lldb::user_id_t)dwarf_cu->GetOffset())<<32); +SymbolFileDWARFDwo::SymbolFileDWARFDwo(ObjectFileSP objfile, + DWARFCompileUnit *dwarf_cu) + : SymbolFileDWARF(objfile.get()), m_obj_file_sp(objfile), + m_base_dwarf_cu(dwarf_cu) { + SetID(((lldb::user_id_t)dwarf_cu->GetOffset()) << 32); } -void -SymbolFileDWARFDwo::LoadSectionData (lldb::SectionType sect_type, DWARFDataExtractor& data) -{ - const SectionList* section_list = m_obj_file->GetSectionList(false /* update_module_section_list */); - if (section_list) - { - SectionSP section_sp (section_list->FindSectionByType(sect_type, true)); - if (section_sp) - { - // See if we memory mapped the DWARF segment? - if (m_dwarf_data.GetByteSize()) - { - data.SetData(m_dwarf_data, section_sp->GetOffset(), section_sp->GetFileSize()); - return; - } - - if (m_obj_file->ReadSectionData(section_sp.get(), data) != 0) - return; - - data.Clear(); - } +void SymbolFileDWARFDwo::LoadSectionData(lldb::SectionType sect_type, + DWARFDataExtractor &data) { + const SectionList *section_list = + m_obj_file->GetSectionList(false /* update_module_section_list */); + if (section_list) { + SectionSP section_sp(section_list->FindSectionByType(sect_type, true)); + if (section_sp) { + // See if we memory mapped the DWARF segment? + if (m_dwarf_data.GetByteSize()) { + data.SetData(m_dwarf_data, section_sp->GetOffset(), + section_sp->GetFileSize()); + return; + } + + if (m_obj_file->ReadSectionData(section_sp.get(), data) != 0) + return; + + data.Clear(); } + } - SymbolFileDWARF::LoadSectionData(sect_type, data); + SymbolFileDWARF::LoadSectionData(sect_type, data); } lldb::CompUnitSP -SymbolFileDWARFDwo::ParseCompileUnit(DWARFCompileUnit* dwarf_cu, uint32_t cu_idx) -{ - assert(GetCompileUnit() == dwarf_cu && "SymbolFileDWARFDwo::ParseCompileUnit called with incompatible compile unit"); - return GetBaseSymbolFile()->ParseCompileUnit(m_base_dwarf_cu, UINT32_MAX); +SymbolFileDWARFDwo::ParseCompileUnit(DWARFCompileUnit *dwarf_cu, + uint32_t cu_idx) { + assert(GetCompileUnit() == dwarf_cu && "SymbolFileDWARFDwo::ParseCompileUnit " + "called with incompatible compile " + "unit"); + return GetBaseSymbolFile()->ParseCompileUnit(m_base_dwarf_cu, UINT32_MAX); } -DWARFCompileUnit* -SymbolFileDWARFDwo::GetCompileUnit() -{ - // Only dwo files with 1 compile unit is supported - if (GetNumCompileUnits() == 1) - return DebugInfo()->GetCompileUnitAtIndex(0); - else - return nullptr; +DWARFCompileUnit *SymbolFileDWARFDwo::GetCompileUnit() { + // Only dwo files with 1 compile unit is supported + if (GetNumCompileUnits() == 1) + return DebugInfo()->GetCompileUnitAtIndex(0); + else + return nullptr; } -DWARFCompileUnit* -SymbolFileDWARFDwo::GetDWARFCompileUnit(lldb_private::CompileUnit *comp_unit) -{ - return GetCompileUnit(); +DWARFCompileUnit * +SymbolFileDWARFDwo::GetDWARFCompileUnit(lldb_private::CompileUnit *comp_unit) { + return GetCompileUnit(); } -SymbolFileDWARF::DIEToTypePtr& -SymbolFileDWARFDwo::GetDIEToType() -{ - return GetBaseSymbolFile()->GetDIEToType(); +SymbolFileDWARF::DIEToTypePtr &SymbolFileDWARFDwo::GetDIEToType() { + return GetBaseSymbolFile()->GetDIEToType(); } -SymbolFileDWARF::DIEToVariableSP& -SymbolFileDWARFDwo::GetDIEToVariable() -{ - return GetBaseSymbolFile()->GetDIEToVariable(); +SymbolFileDWARF::DIEToVariableSP &SymbolFileDWARFDwo::GetDIEToVariable() { + return GetBaseSymbolFile()->GetDIEToVariable(); } -SymbolFileDWARF::DIEToClangType& -SymbolFileDWARFDwo::GetForwardDeclDieToClangType() -{ - return GetBaseSymbolFile()->GetForwardDeclDieToClangType(); +SymbolFileDWARF::DIEToClangType & +SymbolFileDWARFDwo::GetForwardDeclDieToClangType() { + return GetBaseSymbolFile()->GetForwardDeclDieToClangType(); } -SymbolFileDWARF::ClangTypeToDIE& -SymbolFileDWARFDwo::GetForwardDeclClangTypeToDie() -{ - return GetBaseSymbolFile()->GetForwardDeclClangTypeToDie(); +SymbolFileDWARF::ClangTypeToDIE & +SymbolFileDWARFDwo::GetForwardDeclClangTypeToDie() { + return GetBaseSymbolFile()->GetForwardDeclClangTypeToDie(); } -UniqueDWARFASTTypeMap& -SymbolFileDWARFDwo::GetUniqueDWARFASTTypeMap() -{ - return GetBaseSymbolFile()->GetUniqueDWARFASTTypeMap(); +UniqueDWARFASTTypeMap &SymbolFileDWARFDwo::GetUniqueDWARFASTTypeMap() { + return GetBaseSymbolFile()->GetUniqueDWARFASTTypeMap(); } -lldb::TypeSP -SymbolFileDWARFDwo::FindDefinitionTypeForDWARFDeclContext (const DWARFDeclContext &die_decl_ctx) -{ - return GetBaseSymbolFile()->FindDefinitionTypeForDWARFDeclContext(die_decl_ctx); +lldb::TypeSP SymbolFileDWARFDwo::FindDefinitionTypeForDWARFDeclContext( + const DWARFDeclContext &die_decl_ctx) { + return GetBaseSymbolFile()->FindDefinitionTypeForDWARFDeclContext( + die_decl_ctx); } -SymbolFileDWARF* -SymbolFileDWARFDwo::GetBaseSymbolFile() -{ - return m_base_dwarf_cu->GetSymbolFileDWARF(); +SymbolFileDWARF *SymbolFileDWARFDwo::GetBaseSymbolFile() { + return m_base_dwarf_cu->GetSymbolFileDWARF(); } DWARFExpression::LocationListFormat -SymbolFileDWARFDwo::GetLocationListFormat() const -{ - return DWARFExpression::SplitDwarfLocationList; +SymbolFileDWARFDwo::GetLocationListFormat() const { + return DWARFExpression::SplitDwarfLocationList; } -TypeSystem* -SymbolFileDWARFDwo::GetTypeSystemForLanguage(LanguageType language) -{ - return GetBaseSymbolFile()->GetTypeSystemForLanguage(language); +TypeSystem * +SymbolFileDWARFDwo::GetTypeSystemForLanguage(LanguageType language) { + return GetBaseSymbolFile()->GetTypeSystemForLanguage(language); } DWARFDIE -SymbolFileDWARFDwo::GetDIE(const DIERef &die_ref) -{ - lldbassert(m_base_dwarf_cu->GetOffset() == die_ref.cu_offset); - return DebugInfo()->GetDIEForDIEOffset(die_ref.die_offset); +SymbolFileDWARFDwo::GetDIE(const DIERef &die_ref) { + lldbassert(m_base_dwarf_cu->GetOffset() == die_ref.cu_offset); + return DebugInfo()->GetDIEForDIEOffset(die_ref.die_offset); } |