diff options
Diffstat (limited to 'lldb/source/Symbol')
| -rw-r--r-- | lldb/source/Symbol/CompileUnit.cpp | 17 | ||||
| -rw-r--r-- | lldb/source/Symbol/SymbolVendor.cpp | 15 |
2 files changed, 32 insertions, 0 deletions
diff --git a/lldb/source/Symbol/CompileUnit.cpp b/lldb/source/Symbol/CompileUnit.cpp index 6483258ee67..d8e95ce7271 100644 --- a/lldb/source/Symbol/CompileUnit.cpp +++ b/lldb/source/Symbol/CompileUnit.cpp @@ -436,6 +436,23 @@ CompileUnit::SetVariableList(VariableListSP &variables) m_variables = variables; } +const std::vector<ConstString> & +CompileUnit::GetImportedModules () +{ + if (m_imported_modules.empty() && + m_flags.IsClear(flagsParsedImportedModules)) + { + m_flags.Set(flagsParsedImportedModules); + if (SymbolVendor *symbol_vendor = GetModule()->GetSymbolVendor()) + { + SymbolContext sc; + CalculateSymbolContext(&sc); + symbol_vendor->ParseImportedModules(sc, m_imported_modules); + } + } + return m_imported_modules; +} + FileSpecList& CompileUnit::GetSupportFiles () { diff --git a/lldb/source/Symbol/SymbolVendor.cpp b/lldb/source/Symbol/SymbolVendor.cpp index 6445efbb3cb..6ec9f3861ec 100644 --- a/lldb/source/Symbol/SymbolVendor.cpp +++ b/lldb/source/Symbol/SymbolVendor.cpp @@ -198,6 +198,21 @@ SymbolVendor::ParseCompileUnitSupportFiles (const SymbolContext& sc, FileSpecLis return false; } +bool +SymbolVendor::ParseImportedModules (const SymbolContext &sc, + std::vector<ConstString> &imported_modules) +{ + ModuleSP module_sp(GetModule()); + if (module_sp) + { + lldb_private::Mutex::Locker locker(module_sp->GetMutex()); + if (m_sym_file_ap.get()) + return m_sym_file_ap->ParseImportedModules(sc, imported_modules); + } + return false; + +} + size_t SymbolVendor::ParseFunctionBlocks (const SymbolContext &sc) { |

