Index: lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h =================================================================== --- lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h @@ -68,7 +68,7 @@ friend class SymbolFileDWARFDebugMap; friend class SymbolFileDWARFDwo; friend class DebugMapModule; - friend class DIERef; + friend struct DIERef; friend class DWARFCompileUnit; friend class DWARFDIE; friend class DWARFASTParserClang; @@ -326,7 +326,7 @@ lldb::ModuleSP GetDWOModule (lldb_private::ConstString name); - DWARFDIE + virtual DWARFDIE GetDIE(const DIERef &die_ref); virtual std::unique_ptr Index: lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h =================================================================== --- lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h @@ -108,7 +108,7 @@ }; friend class DebugMapModule; - friend class DIERef; + friend struct DIERef; friend class DWARFASTParserClang; friend class DWARFCompileUnit; friend class SymbolFileDWARF; Index: lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h =================================================================== --- lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h @@ -38,6 +38,9 @@ lldb_private::TypeSystem* GetTypeSystemForLanguage(lldb::LanguageType language) override; + DWARFDIE + GetDIE(const DIERef &die_ref) override; + std::unique_ptr GetDwoSymbolFileForCompileUnit(DWARFCompileUnit &dwarf_cu, const DWARFDebugInfoEntry &cu_die) override { Index: lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp =================================================================== --- lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp @@ -129,3 +129,10 @@ { return GetBaseSymbolFile()->GetTypeSystemForLanguage(language); } + +DWARFDIE +SymbolFileDWARFDwo::GetDIE(const DIERef &die_ref) +{ + assert(m_base_dwarf_cu->GetOffset() == die_ref.cu_offset); + return DebugInfo()->GetDIEForDIEOffset(die_ref.die_offset); +}