summaryrefslogtreecommitdiffstats
path: root/lldb/source
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source')
-rw-r--r--lldb/source/Target/StackFrame.cpp6
-rw-r--r--lldb/source/Target/StackFrameList.cpp20
-rw-r--r--lldb/source/Target/Thread.cpp5
3 files changed, 31 insertions, 0 deletions
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