This revision was automatically updated to reflect the committed changes. Closed by commit rGf03cd763384b: [lldb] Introduce SymbolFile::ParseAllLanguages (authored by augusto2112).
Changed prior to commit: https://reviews.llvm.org/D146265?vs=505952&id=506307#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D146265/new/ https://reviews.llvm.org/D146265 Files: lldb/include/lldb/Symbol/SymbolFile.h lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h Index: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h =================================================================== --- lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h +++ lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h @@ -62,6 +62,8 @@ ParseLanguage(lldb_private::CompileUnit &comp_unit) override; lldb_private::XcodeSDK ParseXcodeSDK(lldb_private::CompileUnit &comp_unit) override; + llvm::SmallSet<lldb::LanguageType, 4> + ParseAllLanguages(lldb_private::CompileUnit &comp_unit) override; size_t ParseFunctions(lldb_private::CompileUnit &comp_unit) override; bool ParseLineTable(lldb_private::CompileUnit &comp_unit) override; bool ParseDebugMacros(lldb_private::CompileUnit &comp_unit) override; Index: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp =================================================================== --- lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp +++ lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp @@ -683,6 +683,17 @@ return {}; } +llvm::SmallSet<lldb::LanguageType, 4> +SymbolFileDWARFDebugMap::ParseAllLanguages( + lldb_private::CompileUnit &comp_unit) { + llvm::SmallSet<lldb::LanguageType, 4> langs; + auto *info = GetCompUnitInfo(comp_unit); + for (auto &comp_unit : info->compile_units_sps) { + langs.insert(comp_unit->GetLanguage()); + } + return langs; +} + size_t SymbolFileDWARFDebugMap::ParseFunctions(CompileUnit &comp_unit) { std::lock_guard<std::recursive_mutex> guard(GetModuleMutex()); SymbolFileDWARF *oso_dwarf = GetSymbolFile(comp_unit); Index: lldb/include/lldb/Symbol/SymbolFile.h =================================================================== --- lldb/include/lldb/Symbol/SymbolFile.h +++ lldb/include/lldb/Symbol/SymbolFile.h @@ -25,6 +25,7 @@ #include "lldb/Utility/XcodeSDK.h" #include "lldb/lldb-private.h" #include "llvm/ADT/DenseSet.h" +#include "llvm/ADT/SmallSet.h" #include "llvm/Support/Errc.h" #include <mutex> @@ -146,6 +147,17 @@ virtual lldb::LanguageType ParseLanguage(CompileUnit &comp_unit) = 0; /// Return the Xcode SDK comp_unit was compiled against. virtual XcodeSDK ParseXcodeSDK(CompileUnit &comp_unit) { return {}; } + + /// This function exists because SymbolFileDWARFDebugMap may extra compile + /// units which aren't exposed as "real" compile units. In every other + /// case this function should behave identically as ParseLanguage. + virtual llvm::SmallSet<lldb::LanguageType, 4> + ParseAllLanguages(CompileUnit &comp_unit) { + llvm::SmallSet<lldb::LanguageType, 4> langs; + langs.insert(ParseLanguage(comp_unit)); + return langs; + } + virtual size_t ParseFunctions(CompileUnit &comp_unit) = 0; virtual bool ParseLineTable(CompileUnit &comp_unit) = 0; virtual bool ParseDebugMacros(CompileUnit &comp_unit) = 0;
Index: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h =================================================================== --- lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h +++ lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h @@ -62,6 +62,8 @@ ParseLanguage(lldb_private::CompileUnit &comp_unit) override; lldb_private::XcodeSDK ParseXcodeSDK(lldb_private::CompileUnit &comp_unit) override; + llvm::SmallSet<lldb::LanguageType, 4> + ParseAllLanguages(lldb_private::CompileUnit &comp_unit) override; size_t ParseFunctions(lldb_private::CompileUnit &comp_unit) override; bool ParseLineTable(lldb_private::CompileUnit &comp_unit) override; bool ParseDebugMacros(lldb_private::CompileUnit &comp_unit) override; Index: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp =================================================================== --- lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp +++ lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp @@ -683,6 +683,17 @@ return {}; } +llvm::SmallSet<lldb::LanguageType, 4> +SymbolFileDWARFDebugMap::ParseAllLanguages( + lldb_private::CompileUnit &comp_unit) { + llvm::SmallSet<lldb::LanguageType, 4> langs; + auto *info = GetCompUnitInfo(comp_unit); + for (auto &comp_unit : info->compile_units_sps) { + langs.insert(comp_unit->GetLanguage()); + } + return langs; +} + size_t SymbolFileDWARFDebugMap::ParseFunctions(CompileUnit &comp_unit) { std::lock_guard<std::recursive_mutex> guard(GetModuleMutex()); SymbolFileDWARF *oso_dwarf = GetSymbolFile(comp_unit); Index: lldb/include/lldb/Symbol/SymbolFile.h =================================================================== --- lldb/include/lldb/Symbol/SymbolFile.h +++ lldb/include/lldb/Symbol/SymbolFile.h @@ -25,6 +25,7 @@ #include "lldb/Utility/XcodeSDK.h" #include "lldb/lldb-private.h" #include "llvm/ADT/DenseSet.h" +#include "llvm/ADT/SmallSet.h" #include "llvm/Support/Errc.h" #include <mutex> @@ -146,6 +147,17 @@ virtual lldb::LanguageType ParseLanguage(CompileUnit &comp_unit) = 0; /// Return the Xcode SDK comp_unit was compiled against. virtual XcodeSDK ParseXcodeSDK(CompileUnit &comp_unit) { return {}; } + + /// This function exists because SymbolFileDWARFDebugMap may extra compile + /// units which aren't exposed as "real" compile units. In every other + /// case this function should behave identically as ParseLanguage. + virtual llvm::SmallSet<lldb::LanguageType, 4> + ParseAllLanguages(CompileUnit &comp_unit) { + llvm::SmallSet<lldb::LanguageType, 4> langs; + langs.insert(ParseLanguage(comp_unit)); + return langs; + } + virtual size_t ParseFunctions(CompileUnit &comp_unit) = 0; virtual bool ParseLineTable(CompileUnit &comp_unit) = 0; virtual bool ParseDebugMacros(CompileUnit &comp_unit) = 0;
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits