History log of /external/google-breakpad/src/processor/stackwalker_arm.cc
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
42b91fbbf30f8a6d900d1fb97e96394dbb363890 19-Aug-2013 ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Allow setting a limit on the number of frames to be recovered by stack scanning.
Patch by Julian Seward <jseward@acm.org> R=ted at https://bugzilla.mozilla.org/show_bug.cgi?id=894264

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1206 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
7a58af62ecb1e3d76ea0c0d0ad6198e378b4e3f4 26-Jun-2013 ivan.penkov@gmail.com <ivan.penkov@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> More robust stack walks when the IP address in the context frame is invalid (or not in a known module).

This is achieved by:
1. Extending the span of the scan for return address in the conext frame. Initially, I wanted to extend the span of the scan for all frames but then I noticed that there is code for ARM already that is extending the search only for the context frame. This kind of makes sense so I decided to reuse the same idea everywhere.
2. Attempting to restore the EBP chain after a successful scan for return address so that the stackwalker can switch back to FRAME_TRUST_CFI for the rest of the frames when possible.

I also fixed the lint errors in the files touched.
Review URL: https://breakpad.appspot.com/605002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1193 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
6162aed3c3fcfc53373c963ac375d39a5dfa5a25 06-Mar-2013 ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Use stdint types everywhere
R=mark at https://breakpad.appspot.com/535002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1121 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
2cc15ba4327831f917ff55b87e6d5fc3c7750085 17-Jan-2013 ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Move scoped_ptr.h to common
R=mark at https://breakpad.appspot.com/509002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1096 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
bc9a28655784a66e8772cdc5b428ef5bb6286d8c 04-Dec-2012 ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Allow StackwalkerARM to scan much farther to find the caller of the context frame
R=jimb at https://breakpad.appspot.com/501002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1086 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
e721e628ec10381c96e38cfc82c1816983097165 06-Nov-2012 ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Allow processing dumps with missing stack memory for some threads
r=mkrebs at https://breakpad.appspot.com/413002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1077 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
9753aff85a9a20dbe294529b4184d9686ec42cdd 10-Oct-2012 SiyangXie@gmail.com <SiyangXie@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Refactor the logic of resolving source line info into helper class.
http://breakpad.appspot.com/459002/


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1068 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
0fd250335b66b12609aaf1b749384b711ecddaa9 17-Oct-2011 qsr@chromium.org <qsr@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Use frame pointer to walk ARM stack on iOS.
Review URL: http://breakpad.appspot.com/314001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@869 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
281d52d944d63ddfbe933a7bbe8adbfba3523966 24-Jan-2011 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> Fix some apparently longstanding crash bugs in Stackwalker implementations when resolver is NULL.
R=mark at http://breakpad.appspot.com/257001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@761 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
c653618a9175d3252cc6d1aa8c3393f9558646e8 01-Oct-2010 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> Add stack-scanning fallback to Stackwalker{AMD64,ARM}.
R=jimb at http://breakpad.appspot.com/206001/show

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@704 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
8c33b3e9c95a67a9bb06c033d5d4c28d9a55168b 01-Oct-2010 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> Refactor some bits of StackWalkerX86 / StackFrameX86 out into their respective parent classes so they can be used by other architecture implementations.
R=jimb at http://breakpad.appspot.com/205001/show

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@703 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
c609f474a955e1f617802ff1185efaa5ef9659f9 16-Mar-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad: Support DWARF CFI-driven stack walking on ARM.

This patch allows the Breakpad minidump processor to use data from
STACK CFI records to generate stack traces for the ARM processor.

In the symbol dumper, we need a table mapping DWARF CFI register
numbers to their names: STACK CFI records refer to registers by name.

In the processor, we expand StackwalkerARM::GetCallerFrame to see if
there are STACK CFI records covering the callee, and then use those to
recover the caller's register values.

There's no good reason the ARM walker couldn't use the SimpleCFIWalker
interface declared in cfi_frame_info.h. Unfortunately, that interface
assumes that one can map register names to member pointers of the raw
context type, while MDRawContextARM uses an array to hold the
registers' values: C++ pointer-to-member types can't refer to elements
of member arrays. So we have to write out SimpleCFIWalker::FindCallerRegisters
in StackwalkerARM::GetCallerFrame.

We define enum MDARMRegisterNumbers in minidump_cpu_arm.h, for
convenience in referring to certain ARM registers with dedicated
purposes, like the stack pointer and the PC.

We define validity flags in StackFrameARM for all the registers, since
CFI could theoretically recover any of them. In the same vein, we
expand minidump_stackwalk.cc to print the values of all valid
callee-saves registers in the context --- and use the proper names for
special-purpose registers.

We provide unit tests that give full code and branch coverage (with
minor exceptions). We add a testing interface to StackwalkerARM that
allows us to create context frames that lack some register values.

a=jimblandy, r=mmentovai


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@553 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
83e085b7a331c96237cf8e814f97b3ef4c36a70f 09-Feb-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad: Update copyright notice years on all files changed in 2010.

We've gotten mixed advice from the lawyery types about whether this
matters. But it's easy enough to do.

a=jimblandy, r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@517 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
2684b4dc196ca2da9466aa5391f5c0090739d2f6 14-Jan-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad processor: Don't pass Windows stack walking information to all walkers.

At the moment, the StackWalker GetCallerFrame member function expects
a vector of WindowsFrameInfo structures, even though WindowsFrameInfo
is only used or useful on one one implementation (StackWalkerX86).

This patch changes StackWalker::GetCallerFrame to no longer expect the
WindowsFrameInfo structures, and changes all implementations to match.

In particular, StackWalkerX86 is changed to find the WindowsFrameInfo
data itself, and store a pointer to whatever it got in the StackFrame
object itself (which is really a StackFrameX86).

To allow GetCallerFrame implementations to look up stack walking data,
StackWalker::resolver_ needs to be made protected, not private.

a=jimblandy, r=mmentovai


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@491 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
0441036f9ec45c3bc3037f2b407cf21a8006d66f 12-Jan-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad: Avoid warnings building with G++ 4.4.1 using -O3 -Wall.

src/processor/minidump.cc:1067: warning: format ‘%llx’ expects type ‘long long unsigned int’, but argument 3 has type ‘unsigned int’
src/processor/stackwalker_arm.cc:83: warning: unused variable ‘last_frame’
src/processor/minidump_stackwalk.cc:163: warning: ‘trust_name’ may be used uninitialized in this function

a=jimblandy, r=ted.mielczarek


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@481 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
b64d76a3b8a692f431d440f6a4416e7c70aad4ef 23-Dec-2009 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Issue 49012: Breakpad Processor: Rename 'StackFrameInfo' structure to 'WindowsFrameInfo'.

Also, rename stack_frame_info.h to windows_frame_info.h.

If it seems odd to have functions like FillSourceLineInfo returning
Windows-specific data structures... well, it is! This patch just makes
it more obvious what's going on.

a=jimblandy, r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@471 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc
9276b0d3017ad5ca93c8b593cacf317e1eaa114e 19-Dec-2009 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> Basic arm cpu support for processor. r=mark at http://breakpad.appspot.com/49011

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@454 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/processor/stackwalker_arm.cc