diff options
Diffstat (limited to 'lldb/source/Plugins/ObjectFile')
-rw-r--r-- | lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp | 6 | ||||
-rw-r--r-- | lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp index 5b66ef87b08..4d7ce7fa6f4 100644 --- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp +++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp @@ -647,6 +647,8 @@ ObjectFileELF::GetSymtab() Symtab *symbol_table = new Symtab(this); m_symtab_ap.reset(symbol_table); + Mutex::Locker locker (symbol_table->GetMutex ()); + if (!(ParseSectionHeaders() && GetSectionHeaderStringTable())) return symbol_table; @@ -658,7 +660,7 @@ ObjectFileELF::GetSymtab() { const ELFSectionHeader &symtab_section = *I; user_id_t section_id = SectionIndex(I); - ParseSymbolTable(symbol_table, symtab_section, section_id); + ParseSymbolTable (symbol_table, symtab_section, section_id); } } @@ -685,7 +687,7 @@ ObjectFileELF::Dump(Stream *s) section_list->Dump(s, NULL, true); Symtab *symtab = GetSymtab(); if (symtab) - symtab->Dump(s, NULL); + symtab->Dump(s, NULL, lldb::eSortOrderNone); s->EOL(); DumpDependentModules(s); s->EOL(); diff --git a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp index 666fde4f160..a4141c0786a 100644 --- a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp +++ b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp @@ -206,6 +206,7 @@ ObjectFileMachO::GetSymtab() if (m_symtab_ap.get() == NULL) { m_symtab_ap.reset(new Symtab(this)); + Mutex::Locker locker (m_symtab_ap->GetMutex()); ParseSymtab (true); } return m_symtab_ap.get(); @@ -1348,7 +1349,7 @@ ObjectFileMachO::Dump (Stream *s) m_sections_ap->Dump(s, NULL, true); if (m_symtab_ap.get()) - m_symtab_ap->Dump(s, NULL); + m_symtab_ap->Dump(s, NULL, eSortOrderNone); } |