summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target
diff options
context:
space:
mode:
authorAndrew Kaylor <andrew.kaylor@intel.com>2012-12-20 23:08:03 +0000
committerAndrew Kaylor <andrew.kaylor@intel.com>2012-12-20 23:08:03 +0000
commitf85defaea502a47e59826cf335d84a286243c77c (patch)
tree61719f6d7986d52203bf591d60b838a0f2b6450a /lldb/source/Target
parent287e7d275c6022c95d9742e1dcca380b636d92e0 (diff)
downloadbcm5719-llvm-f85defaea502a47e59826cf335d84a286243c77c.tar.gz
bcm5719-llvm-f85defaea502a47e59826cf335d84a286243c77c.zip
Adding eStopReasonThreadExiting and fixing the handling of this state on Linux.
llvm-svn: 170800
Diffstat (limited to 'lldb/source/Target')
-rw-r--r--lldb/source/Target/Thread.cpp19
-rw-r--r--lldb/source/Target/ThreadPlanBase.cpp3
-rw-r--r--lldb/source/Target/ThreadPlanStepInRange.cpp1
-rw-r--r--lldb/source/Target/ThreadPlanStepOut.cpp1
-rw-r--r--lldb/source/Target/ThreadPlanStepOverRange.cpp1
-rw-r--r--lldb/source/Target/ThreadPlanStepUntil.cpp1
6 files changed, 16 insertions, 10 deletions
diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp
index 7c5a0d7c2fc..4750a4dc910 100644
--- a/lldb/source/Target/Thread.cpp
+++ b/lldb/source/Target/Thread.cpp
@@ -1582,15 +1582,16 @@ Thread::StopReasonAsCString (lldb::StopReason reason)
{
switch (reason)
{
- case eStopReasonInvalid: return "invalid";
- case eStopReasonNone: return "none";
- case eStopReasonTrace: return "trace";
- case eStopReasonBreakpoint: return "breakpoint";
- case eStopReasonWatchpoint: return "watchpoint";
- case eStopReasonSignal: return "signal";
- case eStopReasonException: return "exception";
- case eStopReasonExec: return "exec";
- case eStopReasonPlanComplete: return "plan complete";
+ case eStopReasonInvalid: return "invalid";
+ case eStopReasonNone: return "none";
+ case eStopReasonTrace: return "trace";
+ case eStopReasonBreakpoint: return "breakpoint";
+ case eStopReasonWatchpoint: return "watchpoint";
+ case eStopReasonSignal: return "signal";
+ case eStopReasonException: return "exception";
+ case eStopReasonExec: return "exec";
+ case eStopReasonPlanComplete: return "plan complete";
+ case eStopReasonThreadExiting: return "thread exiting";
}
diff --git a/lldb/source/Target/ThreadPlanBase.cpp b/lldb/source/Target/ThreadPlanBase.cpp
index ebf468603cf..44408374884 100644
--- a/lldb/source/Target/ThreadPlanBase.cpp
+++ b/lldb/source/Target/ThreadPlanBase.cpp
@@ -146,7 +146,8 @@ ThreadPlanBase::ShouldStop (Event *event_ptr)
log->Printf("Base plan discarding thread plans for thread tid = 0x%4.4" PRIx64 " (exec.)", m_thread.GetID());
m_thread.DiscardThreadPlans(false);
return true;
-
+
+ case eStopReasonThreadExiting:
case eStopReasonSignal:
if (stop_info_sp->ShouldStop(event_ptr))
{
diff --git a/lldb/source/Target/ThreadPlanStepInRange.cpp b/lldb/source/Target/ThreadPlanStepInRange.cpp
index 1e512452c9a..d4324b6ec09 100644
--- a/lldb/source/Target/ThreadPlanStepInRange.cpp
+++ b/lldb/source/Target/ThreadPlanStepInRange.cpp
@@ -384,6 +384,7 @@ ThreadPlanStepInRange::PlanExplainsStop ()
case eStopReasonSignal:
case eStopReasonException:
case eStopReasonExec:
+ case eStopReasonThreadExiting:
{
LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_STEP));
if (log)
diff --git a/lldb/source/Target/ThreadPlanStepOut.cpp b/lldb/source/Target/ThreadPlanStepOut.cpp
index 534332415c2..678498f68b2 100644
--- a/lldb/source/Target/ThreadPlanStepOut.cpp
+++ b/lldb/source/Target/ThreadPlanStepOut.cpp
@@ -252,6 +252,7 @@ ThreadPlanStepOut::PlanExplainsStop ()
case eStopReasonSignal:
case eStopReasonException:
case eStopReasonExec:
+ case eStopReasonThreadExiting:
return false;
default:
diff --git a/lldb/source/Target/ThreadPlanStepOverRange.cpp b/lldb/source/Target/ThreadPlanStepOverRange.cpp
index 66754d24f89..7851f7081d7 100644
--- a/lldb/source/Target/ThreadPlanStepOverRange.cpp
+++ b/lldb/source/Target/ThreadPlanStepOverRange.cpp
@@ -320,6 +320,7 @@ ThreadPlanStepOverRange::PlanExplainsStop ()
case eStopReasonSignal:
case eStopReasonException:
case eStopReasonExec:
+ case eStopReasonThreadExiting:
default:
if (log)
log->PutCString ("ThreadPlanStepInRange got asked if it explains the stop for some reason other than step.");
diff --git a/lldb/source/Target/ThreadPlanStepUntil.cpp b/lldb/source/Target/ThreadPlanStepUntil.cpp
index 95b0a352f2c..deda7d9184e 100644
--- a/lldb/source/Target/ThreadPlanStepUntil.cpp
+++ b/lldb/source/Target/ThreadPlanStepUntil.cpp
@@ -292,6 +292,7 @@ ThreadPlanStepUntil::AnalyzeStop()
case eStopReasonSignal:
case eStopReasonException:
case eStopReasonExec:
+ case eStopReasonThreadExiting:
m_explains_stop = false;
break;
default:
OpenPOWER on IntegriCloud