summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2016-06-02 17:19:39 +0000
committerGreg Clayton <gclayton@apple.com>2016-06-02 17:19:39 +0000
commit93c99cf05911af9846ac2482080930ebfde0702a (patch)
treea40023149caefd936e3a8abfd630c40792f5ee9e
parent1180e689b6e97d1fd32642c41be6ef36b5cf18c1 (diff)
downloadbcm5719-llvm-93c99cf05911af9846ac2482080930ebfde0702a.tar.gz
bcm5719-llvm-93c99cf05911af9846ac2482080930ebfde0702a.zip
Fixed a problem where -gmodules debug info would be loaded by the DWO file support accidentally and cause 1000s of files to be mapped into LLDB's address space for each .o file that reference a module.
<rdar://problem/26580266> -gmodules causes LLDB.framework to map hundreds of copies of the same .pcm file llvm-svn: 271543
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index a67f72ba50d..a0fc2372251 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -1769,6 +1769,12 @@ SymbolFileDWARF::GetDIE (const DIERef &die_ref)
std::unique_ptr<SymbolFileDWARFDwo>
SymbolFileDWARF::GetDwoSymbolFileForCompileUnit(DWARFCompileUnit &dwarf_cu, const DWARFDebugInfoEntry &cu_die)
{
+ // If we are using a dSYM file, we never want the standard DWO files since
+ // the -gmodule support uses the same DWO machanism to specify full debug
+ // info files for modules.
+ if (GetDebugMapSymfile())
+ return nullptr;
+
const char *dwo_name = cu_die.GetAttributeValueAsString(this, &dwarf_cu, DW_AT_GNU_dwo_name, nullptr);
if (!dwo_name)
return nullptr;
OpenPOWER on IntegriCloud