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 { 21 public: 22 SymbolFileDWARFDwo(lldb::ObjectFileSP objfile, DWARFCompileUnit* dwarf_cu); 23 24 ~SymbolFileDWARFDwo() override = default; 25 26 lldb::CompUnitSP 27 ParseCompileUnit(DWARFCompileUnit* dwarf_cu, uint32_t cu_idx) override; 28 29 DWARFCompileUnit* 30 GetCompileUnit(); 31 32 DWARFCompileUnit* 33 GetDWARFCompileUnit(lldb_private::CompileUnit *comp_unit) override; 34 35 lldb_private::DWARFExpression::LocationListFormat 36 GetLocationListFormat() const override; 37 38 lldb_private::TypeSystem* 39 GetTypeSystemForLanguage(lldb::LanguageType language) override; 40 41 DWARFDIE 42 GetDIE(const DIERef &die_ref) override; 43 44 std::unique_ptr<SymbolFileDWARFDwo> 45 GetDwoSymbolFileForCompileUnit(DWARFCompileUnit &dwarf_cu, const DWARFDebugInfoEntry &cu_die) override 46 { 47 return nullptr; 48 } 49 50 protected: 51 void 52 LoadSectionData (lldb::SectionType sect_type, lldb_private::DWARFDataExtractor& data) override; 53 54 DIEToTypePtr& 55 GetDIEToType() override; 56 57 DIEToVariableSP& 58 GetDIEToVariable() override; 59 60 DIEToClangType& 61 GetForwardDeclDieToClangType() override; 62 63 ClangTypeToDIE& 64 GetForwardDeclClangTypeToDie() override; 65 66 UniqueDWARFASTTypeMap& 67 GetUniqueDWARFASTTypeMap() override; 68 69 lldb::TypeSP 70 FindDefinitionTypeForDWARFDeclContext (const DWARFDeclContext &die_decl_ctx) override; 71 72 SymbolFileDWARF* 73 GetBaseSymbolFile(); 74 75 lldb::ObjectFileSP m_obj_file_sp; 76 DWARFCompileUnit* m_base_dwarf_cu; 77 }; 78 79 #endif // SymbolFileDWARFDwo_SymbolFileDWARFDwo_h_ 80