diff options
Diffstat (limited to 'src/processor/stackwalker_sparc.cc')
-rw-r--r-- | src/processor/stackwalker_sparc.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/processor/stackwalker_sparc.cc b/src/processor/stackwalker_sparc.cc index ff2ea75a..4de838af 100644 --- a/src/processor/stackwalker_sparc.cc +++ b/src/processor/stackwalker_sparc.cc @@ -111,6 +111,14 @@ StackFrame* StackwalkerSPARC::GetCallerFrame(const CallStack* stack, return NULL; } + // Should we terminate the stack walk? (end-of-stack or broken invariant) + if (TerminateWalk(instruction, + stack_pointer, + last_frame->context.g_r[14], + stack->frames()->size() == 1)) { + return NULL; + } + StackFrameSPARC* frame = new StackFrameSPARC(); frame->context = last_frame->context; |