[Lldb-commits] [PATCH 1/9] Load dependent modules in the Linux dynamic loader.
Stephen Wilson
wilsons at start.ca
Tue Jan 18 14:39:07 PST 2011
This fixes a bug where the dynamic loader rendezvous was not updating its
internal state when first initialized.
diff --git a/source/Plugins/DynamicLoader/Linux-DYLD/DYLDRendezvous.cpp b/source/Plugins/DynamicLoader/Linux-DYLD/DYLDRendezvous.cpp
index 8b4795d..f10aedb 100644
--- a/source/Plugins/DynamicLoader/Linux-DYLD/DYLDRendezvous.cpp
+++ b/source/Plugins/DynamicLoader/Linux-DYLD/DYLDRendezvous.cpp
@@ -117,6 +117,12 @@ DYLDRendezvous::UpdateSOEntries()
if (m_current.map_addr == 0)
return false;
+ // When the previous and current states are consistent this is the first
+ // time we have been asked to update. Just take a snapshot of the currently
+ // loaded modules.
+ if (m_previous.state == eConsistent && m_current.state == eConsistent)
+ return TakeSnapshot(m_soentries);
+
// If we are about to add or remove a shared object clear out the current
// state and take a snapshot of the currently loaded images.
if (m_current.state == eAdd || m_current.state == eDelete)
@@ -127,6 +133,7 @@ DYLDRendezvous::UpdateSOEntries()
m_removed_soentries.clear();
return TakeSnapshot(m_soentries);
}
+ assert(m_current.state == eConsistent);
// Otherwise check the previous state to determine what to expect and update
// accordingly.
--
1.7.3.5
More information about the lldb-commits
mailing list