History log of /external/google-breakpad/src/google_breakpad/processor/stackwalker.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c5e242b8cd4280db5162e5a3084f2dc9e16e8ffb 08-Sep-2014 mmandlis@chromium.org <mmandlis@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Extract DumpContext base class from MinidumpContext

This is a pure refactoring in preparation of the Microdump(s)
(which will be introduced by later CL). No behavioral change is
intended.
This change removes the MinidumpContext -> MinidumpStream
inheritance (which is not actually needed as MinidumpContexts
are never stored to streams) and extracts a base class
(DumpContext) out of it.
Similarly, ProcessResult is moved out to its own class.

BUG=chromium:410294

Review URL: https://breakpad.appspot.com/5684002/


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1370 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/google_breakpad/processor/stackwalker.h
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/google_breakpad/processor/stackwalker.h
2d460c37d16a99fd4bcdac045298e87b6b5735b0 11-Jul-2013 ivan.penkov@gmail.com <ivan.penkov@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Detect corrupt symbol files during minidump processing. Recover from the errors and use the good data if possible.

More specifically:
- Detect corrupt symbols during minidump processing and provide the list of modules with corrupt symbols in the ProcessState. This will allow listing the corrupt symbol files in the final crash report.
- Skip and recover from symbol data parse errors - don't give up until 100 parse errors are seen.
- In order to recover from '\0' (null terminator) in the middle of a symbol file, a couple of methods have to be updated to require both buffer pointer and length. Previously they required only a buffer pointer (char *) and the size of the buffer was evaluated using strlen which is not reliable when the data is corrupt. Most of the changes are due to these signature updates.
- Added and updated unittests.

Also, updated minidump_stackwalk to show a WARNING for corrupt symbols. Output looks like this:
...
Loaded modules:
0x000da000 - 0x000dafff Google Chrome Canary ??? (main)
0x000e0000 - 0x0417dfff Google Chrome Framework 0.1500.0.3 (WARNING: Corrupt symbols, Google Chrome Framework, 4682A6B4136436C4BFECEB62D498020E0)
0x044a8000 - 0x04571fff IOBluetooth 0.1.0.0
...
Review URL: https://breakpad.appspot.com/613002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1200 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/google_breakpad/processor/stackwalker.h
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/google_breakpad/processor/stackwalker.h
0e8d72222af5c46f57f1d12149da7a6ce68e63d8 16-Apr-2013 ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Don't print an error when a user-set max frames limit has been reached in the stackwalker
Patch by Julian Seward <jseward@acm.org>, R=ted at https://bugzilla.mozilla.org/show_bug.cgi?id=859745

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1150 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/google_breakpad/processor/stackwalker.h
5a2106b5f95f3232ac0e9aab5f081eb04313a8b6 06-Mar-2013 ivan.penkov@gmail.com <ivan.penkov@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Keeping track of modules without symbols during crash report processing.

http://breakpad.appspot.com/534002/



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1126 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/google_breakpad/processor/stackwalker.h
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/google_breakpad/processor/stackwalker.h
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/google_breakpad/processor/stackwalker.h
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/google_breakpad/processor/stackwalker.h
4e518a4357a2d1c379d4a91df6d4e153ee791101 29-Jun-2012 ivan.penkov@gmail.com <ivan.penkov@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> This change allows compiling the google-breakpad code using a global ::string class instead of std::string. For more details take a look at common/using_std_string.h



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@974 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/google_breakpad/processor/stackwalker.h
921da5eb5412bc45368066966875ccc28d3b81d1 30-Mar-2012 benchan@chromium.org <benchan@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Fix class/struct mismatches in forward declarations.

This patch fixes some compiler warnings when compiling with clang.

BUG=none
TEST=Compile with clang and run unit tests.
Review URL: https://breakpad.appspot.com/368001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@937 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/google_breakpad/processor/stackwalker.h
6679ad568c3e3796acab4022dbfdcfad484e34e8 23-Feb-2012 mark@chromium.org <mark@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Support for .raSearch in the x86 stackwalker

Patch by Benjamin Smedberg <bsmedberg@gmail.com>


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@927 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/google_breakpad/processor/stackwalker.h
9c30407f7f2c6e6a352cd62fe4be21fe55ee1879 19-Oct-2010 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> Double stack scanning length in stackwalker
R=jimb at http://breakpad.appspot.com/215001/show

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@715 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/google_breakpad/processor/stackwalker.h
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/google_breakpad/processor/stackwalker.h
8e77c078d68ebd25d70f92f70a5aa630b19c7ee2 26-Aug-2010 thestig@chromium.org <thestig@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Limit the number of frames we try to walk to prevent runaway processors.
Review URL: http://breakpad.appspot.com/175001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@672 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/google_breakpad/processor/stackwalker.h
5431f41508a984118dd8db41d70fe3c51142b922 03-Mar-2010 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> add missing <string> include from r541

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@544 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/google_breakpad/processor/stackwalker.h
19374d263649a51c8bb56f2f01d3466905847670 03-Mar-2010 nealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e> Fix to cache NOT_FOUND results from symbol supplier on a per-minidump basis
http://breakpad.appspot.com/64001

R=ted.mielczarek, brdevmn
A=nealsid



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@543 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/google_breakpad/processor/stackwalker.h
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/google_breakpad/processor/stackwalker.h
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/google_breakpad/processor/stackwalker.h
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/google_breakpad/processor/stackwalker.h
8d70618ffc6f87bfd3d7bfd05c87c35ec3179a7a 08-Oct-2009 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> Let x86 stackwalker scan stack in cases where program evaluation fails. Original patch by Jeff Muizelaar <jmuizelaar@mozilla.com> with some changes by me. r=mento at http://breakpad.appspot.com/32003/show

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@409 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/google_breakpad/processor/stackwalker.h
b63740b32960e63008b147f01f382e5e70c050f0 20-Apr-2007 mmentovai <mmentovai@4c0a9323-5329-0410-9bdc-e9ce6186880e> Truncated Windows/x86 stacks when using FPO. Add stack scanning to recover
instruction and frame pointers with better reliability. r=bryner

http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/e74af03fb0629aa0


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@146 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/google_breakpad/processor/stackwalker.h
e5dc60822e5938fea2ae892ccddb906641ba174e 14-Feb-2007 mmentovai <mmentovai@4c0a9323-5329-0410-9bdc-e9ce6186880e> Rename Airbag to Breakpad.


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@122 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/google_breakpad/processor/stackwalker.h