aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm/tools/lldb/source
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2013-11-13 17:06:26 +0000
committerEd Maste <emaste@FreeBSD.org>2013-11-13 17:06:26 +0000
commitafda932a71d12094d26aceb2286bde4a8327a062 (patch)
treef3e284205725f7fc1f6cef7a9413a09937b6f6d7 /contrib/llvm/tools/lldb/source
parent11a90beea49bfc34cab21b13f906c0662706cb4b (diff)
downloadsrc-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.cpp3
-rw-r--r--contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunction.cpp6
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())