summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2011-01-26 19:13:09 +0000
committerJim Ingham <jingham@apple.com>2011-01-26 19:13:09 +0000
commit2c36439cb0d93bfd23ded7d96fd970c9f9e458bd (patch)
treec07cfaf69020952314030d6d9591502c247a4911
parent4bf570d6181ecb9a06f2ec6ac1156e8092f32267 (diff)
downloadbcm5719-llvm-2c36439cb0d93bfd23ded7d96fd970c9f9e458bd.tar.gz
bcm5719-llvm-2c36439cb0d93bfd23ded7d96fd970c9f9e458bd.zip
Make sure that if a CallFunction thread plan crashes while running in the "run to address" mode, and it
is an auto-discard thread plan, the plan stack unwinds properly. llvm-svn: 124306
-rw-r--r--lldb/source/Target/ThreadPlanCallFunction.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/lldb/source/Target/ThreadPlanCallFunction.cpp b/lldb/source/Target/ThreadPlanCallFunction.cpp
index 44f44ed944a..d3b62e6c7aa 100644
--- a/lldb/source/Target/ThreadPlanCallFunction.cpp
+++ b/lldb/source/Target/ThreadPlanCallFunction.cpp
@@ -149,6 +149,7 @@ ThreadPlanCallFunction::DoTakedown ()
ClearBreakpoints();
if (log && log->GetVerbose())
ReportRegisterState ("Restoring thread state after function call. Restored register state:");
+
}
else
{
@@ -236,7 +237,10 @@ ThreadPlanCallFunction::PlanExplainsStop ()
else
{
// If the subplan is running, any crashes are attributable to us.
- return (m_subplan_sp.get() != NULL);
+ // If we want to discard the plan, then we say we explain the stop
+ // but if we are going to be discarded, let whoever is above us
+ // explain the stop.
+ return ((m_subplan_sp.get() != NULL) && !OkayToDiscard());
}
}
OpenPOWER on IntegriCloud