diff options
| author | Jim Ingham <jingham@apple.com> | 2014-08-11 23:57:43 +0000 |
|---|---|---|
| committer | Jim Ingham <jingham@apple.com> | 2014-08-11 23:57:43 +0000 |
| commit | 76447851ad839a852d0f342fba67e8397e5d2290 (patch) | |
| tree | f2188ac48138ebabf56e1b9914f5bff18d757e5c | |
| parent | 5cded89d129f7d4050d91fc16b68a52d5e8f6ded (diff) | |
| download | bcm5719-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.cpp | 9 | ||||
| -rw-r--r-- | lldb/source/Target/ThreadPlanStepUntil.cpp | 2 |
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++) |

