diff options
author | Ed Maste <emaste@FreeBSD.org> | 2013-11-13 17:06:26 +0000 |
---|---|---|
committer | Ed Maste <emaste@FreeBSD.org> | 2013-11-13 17:06:26 +0000 |
commit | afda932a71d12094d26aceb2286bde4a8327a062 (patch) | |
tree | f3e284205725f7fc1f6cef7a9413a09937b6f6d7 /contrib/llvm/tools/lldb/source | |
parent | 11a90beea49bfc34cab21b13f906c0662706cb4b (diff) | |
download | src-afda932a71d12094d26aceb2286bde4a8327a062.tar.gz src-afda932a71d12094d26aceb2286bde4a8327a062.zip |
Merge upstream LLDB r194487:
Log failure to restore thread state in ThreadPlanCallFunction::DoTakedown
In order to help track down llvm.org/pr17226.
Sponsored by: DARPA, AFRL
Notes
Notes:
svn path=/head/; revision=258098
Diffstat (limited to 'contrib/llvm/tools/lldb/source')
-rw-r--r-- | contrib/llvm/tools/lldb/source/Target/Thread.cpp | 3 | ||||
-rw-r--r-- | contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunction.cpp | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/contrib/llvm/tools/lldb/source/Target/Thread.cpp b/contrib/llvm/tools/lldb/source/Target/Thread.cpp index 98c26019b4a1..de3314540b48 100644 --- a/contrib/llvm/tools/lldb/source/Target/Thread.cpp +++ b/contrib/llvm/tools/lldb/source/Target/Thread.cpp @@ -511,8 +511,7 @@ Thread::CheckpointThreadState (ThreadStateCheckpoint &saved_state) bool Thread::RestoreRegisterStateFromCheckpoint (ThreadStateCheckpoint &saved_state) { - RestoreSaveFrameZero(saved_state.register_backup); - return true; + return RestoreSaveFrameZero(saved_state.register_backup); } bool diff --git a/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunction.cpp b/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunction.cpp index c9baaafffd6a..45ff3b4ba5d8 100644 --- a/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunction.cpp +++ b/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunction.cpp @@ -299,7 +299,11 @@ ThreadPlanCallFunction::DoTakedown (bool success) m_takedown_done = true; m_stop_address = m_thread.GetStackFrameAtIndex(0)->GetRegisterContext()->GetPC(); m_real_stop_info_sp = GetPrivateStopInfo (); - m_thread.RestoreRegisterStateFromCheckpoint(m_stored_thread_state); + if (!m_thread.RestoreRegisterStateFromCheckpoint(m_stored_thread_state)) + { + if (log) + log->Printf("ThreadPlanCallFunction(%p): DoTakedown failed to restore register state", this); + } SetPlanComplete(success); ClearBreakpoints(); if (log && log->GetVerbose()) |