summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2014-08-11 23:57:43 +0000
committerJim Ingham <jingham@apple.com>2014-08-11 23:57:43 +0000
commit76447851ad839a852d0f342fba67e8397e5d2290 (patch)
treef2188ac48138ebabf56e1b9914f5bff18d757e5c
parent5cded89d129f7d4050d91fc16b68a52d5e8f6ded (diff)
downloadbcm5719-llvm-76447851ad839a852d0f342fba67e8397e5d2290.tar.gz
bcm5719-llvm-76447851ad839a852d0f342fba67e8397e5d2290.zip
Fetching the parent frame may fail, handle that case. Patch from Tong Shen.
llvm-svn: 215411
-rw-r--r--lldb/source/Target/ThreadPlanStepRange.cpp9
-rw-r--r--lldb/source/Target/ThreadPlanStepUntil.cpp2
2 files changed, 8 insertions, 3 deletions
diff --git a/lldb/source/Target/ThreadPlanStepRange.cpp b/lldb/source/Target/ThreadPlanStepRange.cpp
index 35562723960..82ca59fbca3 100644
--- a/lldb/source/Target/ThreadPlanStepRange.cpp
+++ b/lldb/source/Target/ThreadPlanStepRange.cpp
@@ -58,7 +58,9 @@ ThreadPlanStepRange::ThreadPlanStepRange (ThreadPlanKind kind,
m_use_fast_step = GetTarget().GetUseFastStepping();
AddRange(range);
m_stack_id = m_thread.GetStackFrameAtIndex(0)->GetStackID();
- m_parent_stack_id = m_thread.GetStackFrameAtIndex(1)->GetStackID();
+ StackFrameSP parent_stack = m_thread.GetStackFrameAtIndex(1);
+ if (parent_stack)
+ m_parent_stack_id = parent_stack->GetStackID();
}
ThreadPlanStepRange::~ThreadPlanStepRange ()
@@ -272,7 +274,10 @@ ThreadPlanStepRange::CompareCurrentFrameToStartFrame()
}
else
{
- StackID cur_parent_id = m_thread.GetStackFrameAtIndex(1)->GetStackID();
+ StackFrameSP cur_parent_frame = m_thread.GetStackFrameAtIndex(1);
+ StackID cur_parent_id;
+ if (cur_parent_frame)
+ cur_parent_id = cur_parent_frame->GetStackID();
if (m_parent_stack_id.IsValid()
&& cur_parent_id.IsValid()
&& m_parent_stack_id == cur_parent_id)
diff --git a/lldb/source/Target/ThreadPlanStepUntil.cpp b/lldb/source/Target/ThreadPlanStepUntil.cpp
index 62e05c7fe34..fa5ab8c5d49 100644
--- a/lldb/source/Target/ThreadPlanStepUntil.cpp
+++ b/lldb/source/Target/ThreadPlanStepUntil.cpp
@@ -77,7 +77,7 @@ ThreadPlanStepUntil::ThreadPlanStepUntil
}
}
- m_stack_id = m_thread.GetStackFrameAtIndex(frame_idx)->GetStackID();
+ m_stack_id = frame_sp->GetStackID();
// Now set breakpoints on all our return addresses:
for (size_t i = 0; i < num_addresses; i++)
OpenPOWER on IntegriCloud