summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/Process.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2013-11-05 23:28:00 +0000
committerGreg Clayton <gclayton@apple.com>2013-11-05 23:28:00 +0000
commit095eeaa0250161c3912f07c4c43ddb2a00a91faf (patch)
tree5750b5eef2aba484d7a513203d7575a89eb999ae /lldb/source/Target/Process.cpp
parent5ede5cc9ba0293bf0764e83cc264c40920bf1d7d (diff)
downloadbcm5719-llvm-095eeaa0250161c3912f07c4c43ddb2a00a91faf.tar.gz
bcm5719-llvm-095eeaa0250161c3912f07c4c43ddb2a00a91faf.zip
<rdar://problem/15367122>
Fixed the test case for "test/functionalities/exec/TestExec.py" on Darwin. The issue was breakpoints were persisting and causing problems. When we exec, we need to clear out the process and target and start fresh with nothing and let the breakpoints populate themselves again. This patch correctly clears out the breakpoints and also flushes the process so that the objects (process/thread/frame) give out valid information. llvm-svn: 194106
Diffstat (limited to 'lldb/source/Target/Process.cpp')
-rw-r--r--lldb/source/Target/Process.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp
index d5d1456d2a5..700afdb7981 100644
--- a/lldb/source/Target/Process.cpp
+++ b/lldb/source/Target/Process.cpp
@@ -5633,9 +5633,7 @@ Process::DidExec ()
{
Target &target = GetTarget();
target.CleanupProcess ();
- ModuleList unloaded_modules (target.GetImages());
- target.ModulesDidUnload (unloaded_modules);
- target.GetSectionLoadList().Clear();
+ target.ClearModules();
m_dynamic_checkers_ap.reset();
m_abi_sp.reset();
m_system_runtime_ap.reset();
@@ -5648,4 +5646,8 @@ Process::DidExec ()
m_memory_cache.Clear(true);
DoDidExec();
CompleteAttach ();
+ // Flush the process (threads and all stack frames) after running CompleteAttach()
+ // in case the dynamic loader loaded things in new locations.
+ Flush();
}
+
OpenPOWER on IntegriCloud