From b53cb271ca371737a0114cb5b61688e6f523e73e Mon Sep 17 00:00:00 2001 From: Jim Ingham Date: Wed, 3 Aug 2011 01:03:17 +0000 Subject: Add method Module::IsLoadedInTarget, and then in the MacOS X dynamic loader, after we have initialized our shared library state, discard all the modules that didn't make it into the running process. llvm-svn: 136755 --- lldb/source/Core/Module.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'lldb/source/Core/Module.cpp') diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp index 28780f4f99a..0e5f67a0ba6 100644 --- a/lldb/source/Core/Module.cpp +++ b/lldb/source/Core/Module.cpp @@ -690,6 +690,29 @@ Module::IsExecutable () return GetObjectFile()->IsExecutable(); } +bool +Module::IsLoadedInTarget (Target *target) +{ + ObjectFile *obj_file = GetObjectFile(); + if (obj_file) + { + SectionList *sections = obj_file->GetSectionList(); + if (sections != NULL) + { + size_t num_sections = sections->GetSize(); + bool loaded = false; + for (size_t sect_idx = 0; sect_idx < num_sections; sect_idx++) + { + SectionSP section_sp = sections->GetSectionAtIndex(sect_idx); + if (section_sp->GetLoadBaseAddress(target) != LLDB_INVALID_ADDRESS) + { + return true; + } + } + } + } + return false; +} bool Module::SetArchitecture (const ArchSpec &new_arch) { -- cgit v1.2.3