aboutsummaryrefslogtreecommitdiff
path: root/src/processor/stackwalker_arm.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/processor/stackwalker_arm.cc')
-rw-r--r--src/processor/stackwalker_arm.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/processor/stackwalker_arm.cc b/src/processor/stackwalker_arm.cc
index b114fa17..e4fc5869 100644
--- a/src/processor/stackwalker_arm.cc
+++ b/src/processor/stackwalker_arm.cc
@@ -237,7 +237,8 @@ StackFrameARM* StackwalkerARM::GetCallerByFramePointer(
return frame;
}
-StackFrame* StackwalkerARM::GetCallerFrame(const CallStack* stack) {
+StackFrame* StackwalkerARM::GetCallerFrame(const CallStack* stack,
+ bool stack_scan_allowed) {
if (!memory_ || !stack) {
BPLOG(ERROR) << "Can't get caller frame without memory or stack";
return NULL;
@@ -259,7 +260,7 @@ StackFrame* StackwalkerARM::GetCallerFrame(const CallStack* stack) {
frame.reset(GetCallerByFramePointer(frames));
// If everuthing failed, fall back to stack scanning.
- if (!frame.get())
+ if (stack_scan_allowed && !frame.get())
frame.reset(GetCallerByStackScan(frames));
// If nothing worked, tell the caller.