diff options
Diffstat (limited to 'src/processor/stackwalker_arm.h')
-rw-r--r-- | src/processor/stackwalker_arm.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/processor/stackwalker_arm.h b/src/processor/stackwalker_arm.h index 3768cc2c..830579b2 100644 --- a/src/processor/stackwalker_arm.h +++ b/src/processor/stackwalker_arm.h @@ -69,10 +69,19 @@ class StackwalkerARM : public Stackwalker { private: // Implementation of Stackwalker, using arm context and stack conventions. - // TODO: currently stubbed out, needs CFI symbol dumper support virtual StackFrame* GetContextFrame(); virtual StackFrame* GetCallerFrame(const CallStack *stack); + // Use cfi_frame_info (derived from STACK CFI records) to construct + // the frame that called frames.back(). The caller takes ownership + // of the returned frame. Return NULL on failure. + StackFrameARM *GetCallerByCFIFrameInfo(const vector<StackFrame *> &frames, + CFIFrameInfo *cfi_frame_info); + + // Scan the stack for plausible return addresses. The caller takes ownership + // 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 // be returned by GetContextFrame. const MDRawContextARM *context_; |