summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>2017-01-19 00:20:29 +0000
committerJason Molenda <jmolenda@apple.com>2017-01-19 00:20:29 +0000
commit848c7be02a9709a13279ff85b09e6229855c43dc (patch)
tree1dac4bf69404abc0bb40cdf4648ea43fe4e1d2c5
parent3d3f6190abb92ccc5bb81e90885ab14316218ffc (diff)
downloadbcm5719-llvm-848c7be02a9709a13279ff85b09e6229855c43dc.tar.gz
bcm5719-llvm-848c7be02a9709a13279ff85b09e6229855c43dc.zip
Fix a problem with the new dyld interface code -- when a new process
starts up, we need to clear the target's image list and only add the binaries into the target that are actually present in this process run. <rdar://problem/29857613> llvm-svn: 292454
-rw-r--r--lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
index 7b027de783e..0f8b1902c8b 100644
--- a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
+++ b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
@@ -151,6 +151,11 @@ void DynamicLoaderMacOS::ClearNotificationBreakpoint() {
void DynamicLoaderMacOS::DoInitialImageFetch() {
Log *log(lldb_private::GetLogIfAnyCategoriesSet(LIBLLDB_LOG_DYNAMIC_LOADER));
+ // Remove any binaries we pre-loaded in the Target before launching/attaching.
+ // If the same binaries are present in the process, we'll get them from the
+ // shared module cache, we won't need to re-load them from disk.
+ UnloadAllImages();
+
StructuredData::ObjectSP all_image_info_json_sp(
m_process->GetLoadedDynamicLibrariesInfos());
ImageInfo::collection image_infos;
OpenPOWER on IntegriCloud