diff options
author | Jason Molenda <jmolenda@apple.com> | 2013-05-10 02:18:50 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 2013-05-10 02:18:50 +0000 |
commit | 9a2a9e8c36363776800f61217867f282d316cd4c (patch) | |
tree | c21837725a1fbdcbf894ce56bee4f141754f974b /lldb/source/Plugins/SymbolVendor | |
parent | 4e70363242076e0759fe154535a779ae5ee20bf3 (diff) |
Scratch that, the problem was elsewhere.
Diffstat (limited to 'lldb/source/Plugins/SymbolVendor')
-rw-r--r-- | lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp b/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp index 4b271b40317..56c04ba17b6 100644 --- a/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp +++ b/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp @@ -107,6 +107,16 @@ ReplaceDSYMSectionsWithExecutableSections (ObjectFile *exec_objfile, ObjectFile // and in the dSYM with those from the executable. If we fail to // replace the one in the dSYM, then add the executable section to // the dSYM. + SectionSP dsym_sect_sp(dsym_section_list->FindSectionByID(exec_sect_sp->GetID())); + if (dsym_sect_sp.get() && dsym_sect_sp->GetName() != exec_sect_sp->GetName()) + { + // The sections in a dSYM are normally a superset of the sections in an executable. + // If we find a section # in the exectuable & dSYM that don't have the same name, + // something has changed since the dSYM was written. The mach_kernel DSTROOT binary + // has a CTF segment added, for instance, and it's easiest to simply not add that to + // the dSYM - none of the nlist entries are going to have references to that section. + continue; + } if (dsym_section_list->ReplaceSection(exec_sect_sp->GetID(), exec_sect_sp, 0) == false) dsym_section_list->AddSection(exec_sect_sp); } |