aboutsummaryrefslogtreecommitdiff
path: root/src/processor/stackwalker_x86.h
Commit message (Collapse)AuthorAgeFilesLines
* Breakpad processor: Don't pass Windows stack walking information to all walkers.jimblandy2010-01-141-4/+3
| | | | | | | | | | | | | | | | | | | | | 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
* Issue 49012: Breakpad Processor: Rename 'StackFrameInfo' structure to ↵jimblandy2009-12-231-1/+1
| | | | | | | | | | | | | | | '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
* Let x86 stackwalker scan stack in cases where program evaluation fails. ↵ted.mielczarek2009-10-081-0/+13
| | | | | | 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
* Rename Airbag to Breakpad.mmentovai2007-02-141-5/+5
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@122 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Communicate OS and CPU to SymbolSupplier (#107). r=brynermmentovai2007-01-101-1/+2
| | | | | | | | | | Interface change: moved a few fields around in ProcessState; added new arguments to Stackwalker and SymbolSupplier. http://groups.google.com/group/airbag-dev/browse_thread/thread/17e4a48ec3ede932 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@101 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add an abstract interface to SourceLineResolver, and allow any implementationbryner2006-12-111-1/+2
| | | | | | | | | to be used with MinidumpProcessor. The basic SourceLineResolver is now a public interface (#89) git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@83 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Module API (#32). r=waylonis, brynermmentovai2006-12-051-4/+3
| | | | | | | | | | | | | | | | | | | - Introduces a standard API for dealing with modules. MinidumpModule is now a concrete implementation of this API. Code may interact with single modules using the CodeModule interface, and collections of modules using its container, the CodeModules interface. - CodeModule is used directly by SymbolSupplier implementations and SourceLineResolver. Reliance on the specific implementation in MinidumpModule has been eliminated. - Module lists are now added to ProcessState objects. Module references in each stack frame are now pointers to objects in these module lists. - The sample minidump_stackwalk tool prints the module list after printing all threads' stacks. http://groups.google.com/group/airbag-dev/browse_frm/thread/a9c0550edde54cf8 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@74 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move headers for exported interfaces into src/google_airbag (#51). r=brynermmentovai2006-11-061-3/+3
| | | | | | | http://groups.google.com/group/airbag-dev/browse_thread/thread/e01f177386e8794a git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@60 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix minor style problems (#58). r=brynermmentovai2006-10-251-2/+2
| | | | | | | http://groups.google.com/group/airbag-dev/browse_thread/thread/bbcecab979fa82bc git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@49 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Make stack_frame_info vector hold linked_ptrs instead of objects;mmentovai2006-10-231-1/+3
| | | | | | | | | | | | | make Stackwalker::Walk create and return a CallStack instead of filling a caller-supplied one (#54). r=bryner Interface change: Stackwalker::Walk and MinidumpProcessor::Process now return a new CallStack*. http://groups.google.com/group/airbag-dev/browse_thread/thread/d2bad5d7c115c3fe git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@45 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Handle frame pointer omission, (#21), part 4 (final part!): FPO stackwalker.mmentovai2006-10-201-5/+5
| | | | | | | | | | | | | r=bryner - This change allows Airbag to properly walk win32 stacks produced by code built with MSVC's frame pointer omission optimization (/Oy). This optimization is enabled at /O1 and /O2. - There too many interface and file format changes to list here. http://groups.google.com/group/airbag-dev/browse_thread/thread/85ce85bfa8457ece git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@42 4c0a9323-5329-0410-9bdc-e9ce6186880e
* ppc stackwalker (#30). r=brynermmentovai2006-09-251-13/+8
| | | | | | | | | | | | - Implementation of PowerPC stackwalker. Tested using stackwalker_selftest (#18). - Hook up processor-side multi-CPU support in MinidumpProcessor and minidump_stackwalk using the new Stackwalker::StackwalkerForCPU method. http://groups.google.com/group/airbag-dev/browse_thread/thread/1c2fa7c5182a77a9 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@34 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Relicense to BSD (#29). r=brynermmentovai2006-09-201-10/+25
| | | | | | | http://groups.google.com/group/airbag-dev/browse_thread/thread/5f19f13fc172c4e0 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@31 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Follow-up to #26: get rid of supplier_data, it's not really needed sincebryner2006-09-201-2/+1
| | | | | | | the caller can implement their own supplier object. r=mmentovai. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@27 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Get rid of CrashReport, and rename CrashReportProcessor to MinidumpProcessorbryner2006-09-191-1/+1
| | | | | | | | (#26) r=mmentovai. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@26 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add support to the StackWalker for resolving symbols, using abryner2006-09-081-2/+4
| | | | | | | | | | | | caller-implemented SymbolSupplier object to get a symbol file. Add a CrashReportProcessor object which provides a simple API for processing a CrashReport struct, given a SymbolSupplier and a minidump file. r=mmentovai (#17)) git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@18 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Conform to style guidelines.mmentovai2006-09-071-22/+22
| | | | | | | | | | | | - In class definitions, one-space indent for public/protected/private. - Multi-line initializer format puts comma at end of line. Also: - Eliminate the long list of friends in Minidump by making swap() public. (People who need to access unknown stream types directly will need access to swap() too.) git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@16 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Conform to style guidelines: methods overriding virtual methods should also ↵mmentovai2006-09-061-2/+2
| | | | | | be declared virtual. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@14 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Initial implementation of x86 stackwalker (#9). r=brynermmentovai2006-09-061-0/+68
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@12 4c0a9323-5329-0410-9bdc-e9ce6186880e