diff options
author | Andrew Kaylor <andrew.kaylor@intel.com> | 2012-12-20 23:08:03 +0000 |
---|---|---|
committer | Andrew Kaylor <andrew.kaylor@intel.com> | 2012-12-20 23:08:03 +0000 |
commit | f85defaea502a47e59826cf335d84a286243c77c (patch) | |
tree | 61719f6d7986d52203bf591d60b838a0f2b6450a /lldb/source/Target | |
parent | 287e7d275c6022c95d9742e1dcca380b636d92e0 (diff) | |
download | bcm5719-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.cpp | 19 | ||||
-rw-r--r-- | lldb/source/Target/ThreadPlanBase.cpp | 3 | ||||
-rw-r--r-- | lldb/source/Target/ThreadPlanStepInRange.cpp | 1 | ||||
-rw-r--r-- | lldb/source/Target/ThreadPlanStepOut.cpp | 1 | ||||
-rw-r--r-- | lldb/source/Target/ThreadPlanStepOverRange.cpp | 1 | ||||
-rw-r--r-- | lldb/source/Target/ThreadPlanStepUntil.cpp | 1 |
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: |