aboutsummaryrefslogtreecommitdiff
path: root/src/processor/stackwalker_arm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/processor/stackwalker_arm.h')
-rw-r--r--src/processor/stackwalker_arm.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/processor/stackwalker_arm.h b/src/processor/stackwalker_arm.h
index 830579b2..5390c752 100644
--- a/src/processor/stackwalker_arm.h
+++ b/src/processor/stackwalker_arm.h
@@ -40,7 +40,6 @@
#ifndef PROCESSOR_STACKWALKER_ARM_H__
#define PROCESSOR_STACKWALKER_ARM_H__
-
#include "google_breakpad/common/breakpad_types.h"
#include "google_breakpad/common/minidump_format.h"
#include "google_breakpad/processor/stackwalker.h"
@@ -57,6 +56,7 @@ class StackwalkerARM : public Stackwalker {
// to the base Stackwalker constructor.
StackwalkerARM(const SystemInfo *system_info,
const MDRawContextARM *context,
+ int fp_register,
MemoryRegion *memory,
const CodeModules *modules,
SymbolSupplier *supplier,
@@ -78,8 +78,12 @@ class StackwalkerARM : public Stackwalker {
StackFrameARM *GetCallerByCFIFrameInfo(const vector<StackFrame *> &frames,
CFIFrameInfo *cfi_frame_info);
+ // Use the frame pointer. The caller takes ownership of the returned frame.
+ // Return NULL on failure.
+ StackFrameARM *GetCallerByFramePointer(const vector<StackFrame *> &frames);
+
// Scan the stack for plausible return addresses. The caller takes ownership
- // of the returned frame. Return NULL on failure.
+ // of the returned frame. Return NULL on failure.
StackFrameARM *GetCallerByStackScan(const vector<StackFrame *> &frames);
// Stores the CPU context corresponding to the youngest stack frame, to
@@ -90,6 +94,10 @@ class StackwalkerARM : public Stackwalker {
// CONTEXT_VALID_ALL in real use; it is only changeable for the sake of
// unit tests.
int context_frame_validity_;
+
+ // The register to use a as frame pointer. The value is -1 if frame pointer
+ // cannot be used.
+ int fp_register_;
};