summaryrefslogtreecommitdiffstats
path: root/contrib/llvm
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2014-03-19 13:15:16 +0000
committeremaste <emaste@FreeBSD.org>2014-03-19 13:15:16 +0000
commit0c694994982b90cdc0b0492cd1b0e775bbe3d40b (patch)
tree40230f5f77356f5080b685fd6c5968ede21aaed5 /contrib/llvm
parenta7c13fdad58a5b442000f2a0935672c5cd519d47 (diff)
downloadFreeBSD-src-0c694994982b90cdc0b0492cd1b0e775bbe3d40b.zip
FreeBSD-src-0c694994982b90cdc0b0492cd1b0e775bbe3d40b.tar.gz
MFC r258098: 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
Diffstat (limited to 'contrib/llvm')
-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 98c2601..de33145 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 c9baaaf..45ff3b4 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())
OpenPOWER on IntegriCloud