diff options
Diffstat (limited to 'contrib/llvm-project/lldb/source/Core/Module.cpp')
-rw-r--r-- | contrib/llvm-project/lldb/source/Core/Module.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/contrib/llvm-project/lldb/source/Core/Module.cpp b/contrib/llvm-project/lldb/source/Core/Module.cpp index bd0a667171a5..cbecbb9aa5fe 100644 --- a/contrib/llvm-project/lldb/source/Core/Module.cpp +++ b/contrib/llvm-project/lldb/source/Core/Module.cpp @@ -1379,12 +1379,15 @@ void Module::PreloadSymbols() { if (!sym_file) return; - // Prime the symbol file first, since it adds symbols to the symbol table. - sym_file->PreloadSymbols(); - - // Now we can prime the symbol table. + // Load the object file symbol table and any symbols from the SymbolFile that + // get appended using SymbolFile::AddSymbols(...). if (Symtab *symtab = sym_file->GetSymtab()) symtab->PreloadSymbols(); + + // Now let the symbol file preload its data and the symbol table will be + // available without needing to take the module lock. + sym_file->PreloadSymbols(); + } void Module::SetSymbolFileFileSpec(const FileSpec &file) { |