summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/Thread.cpp
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2011-06-03 20:40:54 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2011-06-03 20:40:54 +0000
commit5a6fa540dcc0a86b6e4412ad27bbb0a732bc859b (patch)
tree8dbe47be4a30cf36fd9c11f5259b5c29bf59dde5 /lldb/source/Target/Thread.cpp
parent70969ef10270d3be63498be123ef98ac5dcf2f57 (diff)
downloadbcm5719-llvm-5a6fa540dcc0a86b6e4412ad27bbb0a732bc859b.tar.gz
bcm5719-llvm-5a6fa540dcc0a86b6e4412ad27bbb0a732bc859b.zip
Move SaveFrameZeroState and RestoreSaveFrameZero implementations to Thread base class
llvm-svn: 132586
Diffstat (limited to 'lldb/source/Target/Thread.cpp')
-rw-r--r--lldb/source/Target/Thread.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp
index 288694bfffd..b1a3c15b6b3 100644
--- a/lldb/source/Target/Thread.cpp
+++ b/lldb/source/Target/Thread.cpp
@@ -1156,7 +1156,34 @@ Thread::GetStackFrameStatus (Stream& strm,
source_lines_after);
}
+bool
+Thread::SaveFrameZeroState (RegisterCheckpoint &checkpoint)
+{
+ lldb::StackFrameSP frame_sp(GetStackFrameAtIndex (0));
+ if (frame_sp)
+ {
+ checkpoint.SetStackID(frame_sp->GetStackID());
+ return frame_sp->GetRegisterContext()->ReadAllRegisterValues (checkpoint.GetData());
+ }
+ return false;
+}
+
+bool
+Thread::RestoreSaveFrameZero (const RegisterCheckpoint &checkpoint)
+{
+ lldb::StackFrameSP frame_sp(GetStackFrameAtIndex (0));
+ if (frame_sp)
+ {
+ bool ret = frame_sp->GetRegisterContext()->WriteAllRegisterValues (checkpoint.GetData());
+
+ // Clear out all stack frames as our world just changed.
+ ClearStackFrames();
+ frame_sp->GetRegisterContext()->InvalidateIfNeeded(true);
+ return ret;
+ }
+ return false;
+}
#pragma mark "Thread::SettingsController"
//--------------------------------------------------------------
OpenPOWER on IntegriCloud