summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2010-09-23 17:40:12 +0000
committerJim Ingham <jingham@apple.com>2010-09-23 17:40:12 +0000
commite4284b719ccbe8c2028dfd3eb82c64e50355de54 (patch)
tree3aa04677d7ab4074a376f2c120dc03258e79199b
parenta45bbb96282456b11be82c092ea93a31c264e637 (diff)
downloadbcm5719-llvm-e4284b719ccbe8c2028dfd3eb82c64e50355de54.tar.gz
bcm5719-llvm-e4284b719ccbe8c2028dfd3eb82c64e50355de54.zip
Add GetSP to the StackFrame.
llvm-svn: 114674
-rw-r--r--lldb/include/lldb/Target/StackFrame.h3
-rw-r--r--lldb/include/lldb/Target/StackFrameList.h3
-rw-r--r--lldb/include/lldb/Target/Thread.h3
-rw-r--r--lldb/source/Target/StackFrame.cpp6
-rw-r--r--lldb/source/Target/StackFrameList.cpp20
-rw-r--r--lldb/source/Target/Thread.cpp5
6 files changed, 40 insertions, 0 deletions
diff --git a/lldb/include/lldb/Target/StackFrame.h b/lldb/include/lldb/Target/StackFrame.h
index 66a2c1d5de2..797a117ce7a 100644
--- a/lldb/include/lldb/Target/StackFrame.h
+++ b/lldb/include/lldb/Target/StackFrame.h
@@ -143,6 +143,9 @@ public:
virtual void
Calculate (ExecutionContext &exe_ctx);
+
+ lldb::StackFrameSP
+ GetSP ();
protected:
friend class StackFrameList;
diff --git a/lldb/include/lldb/Target/StackFrameList.h b/lldb/include/lldb/Target/StackFrameList.h
index 888a959665e..f0ab6047078 100644
--- a/lldb/include/lldb/Target/StackFrameList.h
+++ b/lldb/include/lldb/Target/StackFrameList.h
@@ -58,6 +58,9 @@ public:
void
Dump (Stream *s);
+
+ lldb::StackFrameSP
+ GetStackFrameSPForStackFramePtr (StackFrame *stack_frame_ptr);
protected:
diff --git a/lldb/include/lldb/Target/Thread.h b/lldb/include/lldb/Target/Thread.h
index 627a899cdf0..3aad792236a 100644
--- a/lldb/include/lldb/Target/Thread.h
+++ b/lldb/include/lldb/Target/Thread.h
@@ -611,6 +611,9 @@ public:
virtual void
Calculate (ExecutionContext &exe_ctx);
+
+ lldb::StackFrameSP
+ GetStackFrameSPForStackFramePtr (StackFrame *stack_frame_ptr);
protected:
diff --git a/lldb/source/Target/StackFrame.cpp b/lldb/source/Target/StackFrame.cpp
index bd9df621e6e..c7f2c040162 100644
--- a/lldb/source/Target/StackFrame.cpp
+++ b/lldb/source/Target/StackFrame.cpp
@@ -679,4 +679,10 @@ StackFrame::HasCachedData () const
if (!m_disassembly.GetString().empty())
return true;
return false;
+}
+
+lldb::StackFrameSP
+StackFrame::GetSP ()
+{
+ return m_thread.GetStackFrameSPForStackFramePtr (this);
} \ No newline at end of file
diff --git a/lldb/source/Target/StackFrameList.cpp b/lldb/source/Target/StackFrameList.cpp
index 2e76d339a5e..c6ac2de0f0d 100644
--- a/lldb/source/Target/StackFrameList.cpp
+++ b/lldb/source/Target/StackFrameList.cpp
@@ -513,3 +513,23 @@ StackFrameList::Merge (std::auto_ptr<StackFrameList>& curr_ap, lldb::StackFrameL
}
+
+lldb::StackFrameSP
+StackFrameList::GetStackFrameSPForStackFramePtr (StackFrame *stack_frame_ptr)
+{
+ const_iterator pos;
+ const_iterator begin = m_frames.begin();
+ const_iterator end = m_frames.end();
+ lldb::StackFrameSP ret_sp;
+
+ for (pos = begin; pos != end; ++pos)
+ {
+ if (pos->get() == stack_frame_ptr)
+ {
+ ret_sp = (*pos);
+ break;
+ }
+ }
+ return ret_sp;
+}
+
diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp
index cd4f8247c3d..11273b180e1 100644
--- a/lldb/source/Target/Thread.cpp
+++ b/lldb/source/Target/Thread.cpp
@@ -1129,3 +1129,8 @@ Thread::ThreadSettingsController::instance_settings_table[] =
{ NULL, eSetVarTypeNone, NULL, NULL, 0, 0, NULL }
};
+lldb::StackFrameSP
+Thread::GetStackFrameSPForStackFramePtr (StackFrame *stack_frame_ptr)
+{
+ return GetStackFrameList().GetStackFrameSPForStackFramePtr (stack_frame_ptr);
+}
OpenPOWER on IntegriCloud