diff options
Diffstat (limited to 'lldb')
-rw-r--r-- | lldb/include/lldb/Core/Module.h | 7 | ||||
-rw-r--r-- | lldb/include/lldb/Symbol/SymbolFile.h | 8 | ||||
-rw-r--r-- | lldb/include/lldb/Symbol/SymbolVendor.h | 6 | ||||
-rw-r--r-- | lldb/include/lldb/Symbol/Type.h | 2 | ||||
-rw-r--r-- | lldb/source/API/SBCompileUnit.cpp | 1 | ||||
-rw-r--r-- | lldb/source/Core/Module.cpp | 7 | ||||
-rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp | 6 | ||||
-rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp | 12 | ||||
-rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h | 4 | ||||
-rw-r--r-- | lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp | 6 | ||||
-rw-r--r-- | lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp | 8 | ||||
-rw-r--r-- | lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h | 2 | ||||
-rw-r--r-- | lldb/source/Symbol/SymbolFile.cpp | 10 | ||||
-rw-r--r-- | lldb/source/Symbol/SymbolVendor.cpp | 7 | ||||
-rw-r--r-- | lldb/source/Symbol/Type.cpp | 2 |
15 files changed, 23 insertions, 65 deletions
diff --git a/lldb/include/lldb/Core/Module.h b/lldb/include/lldb/Core/Module.h index 544895ea89e..19bcbd6e80b 100644 --- a/lldb/include/lldb/Core/Module.h +++ b/lldb/include/lldb/Core/Module.h @@ -653,13 +653,6 @@ public: GetSymbolVendor(bool can_create = true, lldb_private::Stream *feedback_strm = nullptr); - /// Get accessor the type list for this module. - /// - /// \return - /// A valid type list pointer, or nullptr if there is no valid - /// symbol vendor for this module. - TypeList *GetTypeList(); - /// Get a reference to the UUID value contained in this object. /// /// If the executable image file doesn't not have a UUID value built into diff --git a/lldb/include/lldb/Symbol/SymbolFile.h b/lldb/include/lldb/Symbol/SymbolFile.h index db5af3c4e8c..e41f50e1944 100644 --- a/lldb/include/lldb/Symbol/SymbolFile.h +++ b/lldb/include/lldb/Symbol/SymbolFile.h @@ -16,6 +16,7 @@ #include "lldb/Symbol/Function.h" #include "lldb/Symbol/SourceModule.h" #include "lldb/Symbol/Type.h" +#include "lldb/Symbol/TypeList.h" #include "lldb/lldb-private.h" #include "llvm/ADT/DenseSet.h" @@ -191,10 +192,7 @@ public: virtual void GetMangledNamesForFunction(const std::string &scope_qualified_name, std::vector<ConstString> &mangled_names); - // virtual uint32_t FindTypes (const SymbolContext& sc, const - // RegularExpression& regex, bool append, uint32_t max_matches, TypeList& - // types) = 0; - virtual TypeList *GetTypeList(); + virtual size_t GetTypes(lldb_private::SymbolContextScope *sc_scope, lldb::TypeClass type_mask, lldb_private::TypeList &type_list) = 0; @@ -241,11 +239,13 @@ protected: void AssertModuleLock(); virtual uint32_t CalculateNumCompileUnits() = 0; virtual lldb::CompUnitSP ParseCompileUnitAtIndex(uint32_t idx) = 0; + virtual TypeList &GetTypeList() { return m_type_list; } void SetCompileUnitAtIndex(uint32_t idx, const lldb::CompUnitSP &cu_sp); ObjectFile *m_obj_file; // The object file that symbols can be extracted from. llvm::Optional<std::vector<lldb::CompUnitSP>> m_compile_units; + TypeList m_type_list; uint32_t m_abilities; bool m_calculated_abilities; diff --git a/lldb/include/lldb/Symbol/SymbolVendor.h b/lldb/include/lldb/Symbol/SymbolVendor.h index 8faf69ee664..413b1f4b958 100644 --- a/lldb/include/lldb/Symbol/SymbolVendor.h +++ b/lldb/include/lldb/Symbol/SymbolVendor.h @@ -14,7 +14,6 @@ #include "lldb/Core/ModuleChild.h" #include "lldb/Core/PluginInterface.h" #include "lldb/Symbol/SourceModule.h" -#include "lldb/Symbol/TypeList.h" #include "lldb/Symbol/TypeMap.h" #include "lldb/lldb-private.h" #include "llvm/ADT/DenseSet.h" @@ -112,10 +111,6 @@ public: virtual lldb::CompUnitSP GetCompileUnitAtIndex(size_t idx); - TypeList &GetTypeList() { return m_type_list; } - - const TypeList &GetTypeList() const { return m_type_list; } - virtual size_t GetTypes(SymbolContextScope *sc_scope, lldb::TypeClass type_mask, TypeList &type_list); @@ -139,7 +134,6 @@ public: uint32_t GetPluginVersion() override; protected: - TypeList m_type_list; // Uniqued types for all parsers owned by this module lldb::ObjectFileSP m_objfile_sp; // Keep a reference to the object file in // case it isn't the same as the module // object file (debug symbols in a separate diff --git a/lldb/include/lldb/Symbol/Type.h b/lldb/include/lldb/Symbol/Type.h index efc9bf049a3..b97af89c868 100644 --- a/lldb/include/lldb/Symbol/Type.h +++ b/lldb/include/lldb/Symbol/Type.h @@ -117,8 +117,6 @@ public: SymbolFile *GetSymbolFile() { return m_symbol_file; } const SymbolFile *GetSymbolFile() const { return m_symbol_file; } - TypeList *GetTypeList(); - ConstString GetName(); llvm::Optional<uint64_t> GetByteSize(); diff --git a/lldb/source/API/SBCompileUnit.cpp b/lldb/source/API/SBCompileUnit.cpp index c9ca70645d9..341268f98c7 100644 --- a/lldb/source/API/SBCompileUnit.cpp +++ b/lldb/source/API/SBCompileUnit.cpp @@ -16,6 +16,7 @@ #include "lldb/Symbol/LineTable.h" #include "lldb/Symbol/SymbolVendor.h" #include "lldb/Symbol/Type.h" +#include "lldb/Symbol/TypeList.h" using namespace lldb; using namespace lldb_private; diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp index d17596ecbcd..2dd0e5998e9 100644 --- a/lldb/source/Core/Module.cpp +++ b/lldb/source/Core/Module.cpp @@ -1240,13 +1240,6 @@ void Module::Dump(Stream *s) { s->IndentLess(); } -TypeList *Module::GetTypeList() { - SymbolVendor *symbols = GetSymbolVendor(); - if (symbols) - return &symbols->GetTypeList(); - return nullptr; -} - ConstString Module::GetObjectName() const { return m_object_name; } ObjectFile *Module::GetObjectFile() { diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp index 161589e01fb..b2240e2421e 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp @@ -188,7 +188,7 @@ TypeSP DWARFASTParserClang::ParseTypeFromDWO(const DWARFDIE &die, Log *log) { nullptr, LLDB_INVALID_UID, Type::eEncodingInvalid, &dwo_type_sp->GetDeclaration(), type, Type::eResolveStateForward)); - dwarf->GetTypeList()->Insert(type_sp); + dwarf->GetTypeList().Insert(type_sp); dwarf->GetDIEToType()[die.GetDIE()] = type_sp.get(); clang::TagDecl *tag_decl = ClangASTContext::GetAsTagDecl(type); if (tag_decl) @@ -434,7 +434,7 @@ TypeSP DWARFASTParserClang::ParseTypeFromDWARF(const SymbolContext &sc, return nullptr; } - TypeList *type_list = dwarf->GetTypeList(); + TypeList &type_list = dwarf->GetTypeList(); if (type_is_new_ptr) *type_is_new_ptr = true; @@ -1672,7 +1672,7 @@ TypeSP DWARFASTParserClang::ParseTypeFromDWARF(const SymbolContext &sc, // We are ready to put this type into the uniqued list up at the module // level - type_list->Insert(type_sp); + type_list.Insert(type_sp); dwarf->GetDIEToType()[die.GetDIE()] = type_sp.get(); } diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp index 3b6d8da2312..362e1525864 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp @@ -202,15 +202,13 @@ SymbolFile *SymbolFileDWARF::CreateInstance(ObjectFile *obj_file) { /*dwo_section_list*/ nullptr); } -TypeList *SymbolFileDWARF::GetTypeList() { +TypeList &SymbolFileDWARF::GetTypeList() { // This method can be called without going through the symbol vendor so we // need to lock the module. std::lock_guard<std::recursive_mutex> guard(GetModuleMutex()); - SymbolFileDWARFDebugMap *debug_map_symfile = GetDebugMapSymfile(); - if (debug_map_symfile) + if (SymbolFileDWARFDebugMap *debug_map_symfile = GetDebugMapSymfile()) return debug_map_symfile->GetTypeList(); - else - return m_obj_file->GetModule()->GetTypeList(); + return SymbolFile::GetTypeList(); } void SymbolFileDWARF::GetTypes(const DWARFDIE &die, dw_offset_t min_die_offset, dw_offset_t max_die_offset, uint32_t type_mask, @@ -2971,9 +2969,7 @@ TypeSP SymbolFileDWARF::ParseType(const SymbolContext &sc, const DWARFDIE &die, Log *log = LogChannelDWARF::GetLogIfAll(DWARF_LOG_DEBUG_INFO); TypeSP type_sp = dwarf_ast->ParseTypeFromDWARF(sc, die, log, type_is_new_ptr); if (type_sp) { - TypeList *type_list = GetTypeList(); - if (type_list) - type_list->Insert(type_sp); + GetTypeList().Insert(type_sp); if (die.Tag() == DW_TAG_subprogram) { std::string scope_qualified_name(GetDeclContextForUID(die.GetID()) diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h index 6daa060b9a0..bf53ad6a82a 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h @@ -186,8 +186,6 @@ public: size_t FindTypes(const std::vector<lldb_private::CompilerContext> &context, bool append, lldb_private::TypeMap &types) override; - lldb_private::TypeList *GetTypeList() override; - size_t GetTypes(lldb_private::SymbolContextScope *sc_scope, lldb::TypeClass type_mask, lldb_private::TypeList &type_list) override; @@ -331,6 +329,8 @@ protected: lldb::CompUnitSP ParseCompileUnitAtIndex(uint32_t index) override; + lldb_private::TypeList &GetTypeList() override; + virtual DWARFUnit * GetDWARFCompileUnit(lldb_private::CompileUnit *comp_unit); diff --git a/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp b/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp index 9585b35152f..e7ff32832b9 100644 --- a/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp +++ b/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp @@ -729,7 +729,7 @@ TypeSP SymbolFileNativePDB::GetOrCreateType(PdbTypeSymId type_id) { TypeSP type = CreateAndCacheType(type_id); if (type) - m_obj_file->GetModule()->GetTypeList()->Insert(type); + GetTypeList().Insert(type); return type; } @@ -1283,7 +1283,7 @@ size_t SymbolFileNativePDB::ParseTypes(CompileUnit &comp_unit) { if (m_done_full_type_scan) return 0; - size_t old_count = m_obj_file->GetModule()->GetTypeList()->GetSize(); + const size_t old_count = GetTypeList().GetSize(); LazyRandomTypeCollection &types = m_index->tpi().typeCollection(); // First process the entire TPI stream. @@ -1313,7 +1313,7 @@ size_t SymbolFileNativePDB::ParseTypes(CompileUnit &comp_unit) { GetOrCreateTypedef(global); } - size_t new_count = m_obj_file->GetModule()->GetTypeList()->GetSize(); + const size_t new_count = GetTypeList().GetSize(); m_done_full_type_scan = true; diff --git a/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp b/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp index c6c25fd719c..4fea49c287a 100644 --- a/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp +++ b/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp @@ -557,9 +557,7 @@ lldb_private::Type *SymbolFilePDB::ResolveTypeUID(lldb::user_id_t type_uid) { lldb::TypeSP result = pdb->CreateLLDBTypeFromPDBType(*pdb_type); if (result) { m_types.insert(std::make_pair(type_uid, result)); - auto type_list = GetTypeList(); - if (type_list) - type_list->Insert(result); + GetTypeList().Insert(result); } return result.get(); } @@ -1516,10 +1514,6 @@ size_t SymbolFilePDB::FindTypes( return 0; } -lldb_private::TypeList *SymbolFilePDB::GetTypeList() { - return m_obj_file->GetModule()->GetTypeList(); -} - void SymbolFilePDB::GetTypesForPDBSymbol(const llvm::pdb::PDBSymbol &pdb_symbol, uint32_t type_mask, TypeCollection &type_collection) { diff --git a/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h b/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h index 13bff40958f..fc33202566f 100644 --- a/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h +++ b/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h @@ -138,8 +138,6 @@ public: void FindTypesByRegex(const lldb_private::RegularExpression ®ex, uint32_t max_matches, lldb_private::TypeMap &types); - lldb_private::TypeList *GetTypeList() override; - size_t GetTypes(lldb_private::SymbolContextScope *sc_scope, lldb::TypeClass type_mask, lldb_private::TypeList &type_list) override; diff --git a/lldb/source/Symbol/SymbolFile.cpp b/lldb/source/Symbol/SymbolFile.cpp index 086d9857ce3..7e634e63052 100644 --- a/lldb/source/Symbol/SymbolFile.cpp +++ b/lldb/source/Symbol/SymbolFile.cpp @@ -82,12 +82,6 @@ SymbolFile *SymbolFile::FindPlugin(ObjectFile *obj_file) { return best_symfile_up.release(); } -TypeList *SymbolFile::GetTypeList() { - if (m_obj_file) - return m_obj_file->GetModule()->GetTypeList(); - return nullptr; -} - TypeSystem *SymbolFile::GetTypeSystemForLanguage(lldb::LanguageType language) { TypeSystem *type_system = m_obj_file->GetModule()->GetTypeSystemForLanguage(language); @@ -206,6 +200,10 @@ void SymbolFile::SetCompileUnitAtIndex(uint32_t idx, const CompUnitSP &cu_sp) { } void SymbolFile::Dump(Stream &s) { + s.PutCString("Types:\n"); + m_type_list.Dump(&s, /*show_context*/ false); + s.PutChar('\n'); + s.PutCString("Compile units:\n"); if (m_compile_units) { for (const CompUnitSP &cu_sp : *m_compile_units) { diff --git a/lldb/source/Symbol/SymbolVendor.cpp b/lldb/source/Symbol/SymbolVendor.cpp index f0db9c8d1ed..30e78ef91eb 100644 --- a/lldb/source/Symbol/SymbolVendor.cpp +++ b/lldb/source/Symbol/SymbolVendor.cpp @@ -58,7 +58,7 @@ SymbolVendor *SymbolVendor::FindPlugin(const lldb::ModuleSP &module_sp, // SymbolVendor constructor SymbolVendor::SymbolVendor(const lldb::ModuleSP &module_sp) - : ModuleChild(module_sp), m_type_list(), m_sym_file_up(), m_symtab() {} + : ModuleChild(module_sp), m_sym_file_up(), m_symtab() {} // Destructor SymbolVendor::~SymbolVendor() {} @@ -336,8 +336,6 @@ void SymbolVendor::Dump(Stream *s) { if (module_sp) { std::lock_guard<std::recursive_mutex> guard(module_sp->GetMutex()); - bool show_context = false; - s->Printf("%p: ", static_cast<void *>(this)); s->Indent(); s->PutCString("SymbolVendor"); @@ -354,9 +352,6 @@ void SymbolVendor::Dump(Stream *s) { } } s->EOL(); - s->PutCString("Types:\n"); - m_type_list.Dump(s, show_context); - s->EOL(); if (m_sym_file_up) m_sym_file_up->Dump(*s); s->IndentMore(); diff --git a/lldb/source/Symbol/Type.cpp b/lldb/source/Symbol/Type.cpp index 4ee8330ce28..c16e6471acd 100644 --- a/lldb/source/Symbol/Type.cpp +++ b/lldb/source/Symbol/Type.cpp @@ -425,8 +425,6 @@ bool Type::WriteToMemory(ExecutionContext *exe_ctx, lldb::addr_t addr, return false; } -TypeList *Type::GetTypeList() { return GetSymbolFile()->GetTypeList(); } - const Declaration &Type::GetDeclaration() const { return m_decl; } bool Type::ResolveClangType(ResolveState compiler_type_resolve_state) { |