1 //===-- SymbolFileDWARFDwo.h ------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef SymbolFileDWARFDwo_SymbolFileDWARFDwo_h_ 11 #define SymbolFileDWARFDwo_SymbolFileDWARFDwo_h_ 12 13 // C Includes 14 // C++ Includes 15 // Other libraries and framework includes 16 // Project includes 17 #include "SymbolFileDWARF.h" 18 19 class SymbolFileDWARFDwo : public SymbolFileDWARF { 20 public: 21 SymbolFileDWARFDwo(lldb::ObjectFileSP objfile, DWARFCompileUnit *dwarf_cu); 22 23 ~SymbolFileDWARFDwo() override = default; 24 25 lldb::CompUnitSP ParseCompileUnit(DWARFCompileUnit *dwarf_cu, 26 uint32_t cu_idx) override; 27 28 DWARFCompileUnit *GetCompileUnit(); 29 30 DWARFCompileUnit * 31 GetDWARFCompileUnit(lldb_private::CompileUnit *comp_unit) override; 32 33 lldb_private::DWARFExpression::LocationListFormat 34 GetLocationListFormat() const override; 35 36 lldb_private::TypeSystem * 37 GetTypeSystemForLanguage(lldb::LanguageType language) override; 38 39 DWARFDIE 40 GetDIE(const DIERef &die_ref) override; 41 42 std::unique_ptr<SymbolFileDWARFDwo> 43 GetDwoSymbolFileForCompileUnit(DWARFCompileUnit &dwarf_cu, 44 const DWARFDebugInfoEntry &cu_die) override { 45 return nullptr; 46 } 47 48 protected: 49 void LoadSectionData(lldb::SectionType sect_type, 50 lldb_private::DWARFDataExtractor &data) override; 51 52 DIEToTypePtr &GetDIEToType() override; 53 54 DIEToVariableSP &GetDIEToVariable() override; 55 56 DIEToClangType &GetForwardDeclDieToClangType() override; 57 58 ClangTypeToDIE &GetForwardDeclClangTypeToDie() override; 59 60 UniqueDWARFASTTypeMap &GetUniqueDWARFASTTypeMap() override; 61 62 lldb::TypeSP FindDefinitionTypeForDWARFDeclContext( 63 const DWARFDeclContext &die_decl_ctx) override; 64 65 SymbolFileDWARF *GetBaseSymbolFile(); 66 67 lldb::ObjectFileSP m_obj_file_sp; 68 DWARFCompileUnit *m_base_dwarf_cu; 69 }; 70 71 #endif // SymbolFileDWARFDwo_SymbolFileDWARFDwo_h_ 72