aboutsummaryrefslogtreecommitdiff
path: root/src/processor
Commit message (Collapse)AuthorAgeFilesLines
...
* Make stack_frame_info vector hold linked_ptrs instead of objects;mmentovai2006-10-2314-140/+190
| | | | | | | | | | | | | 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
* Add PUBLIC support to SourceLineResolver (resolve function names in Windowsmmentovai2006-10-2011-28/+602
| | | | | | | | | | | system libraries) (#53) StackFrame::function_base is not populated (#49) r=bryner http://groups.google.com/group/airbag-dev/browse_thread/thread/a17d35348e7027bb git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@43 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Handle frame pointer omission, (#21), part 4 (final part!): FPO stackwalker.mmentovai2006-10-2024-1605/+2002
| | | | | | | | | | | | | 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
* Reduce calls to SymbolSupplier::GetSymbolFile() (#48).bryner2006-10-164-5/+16
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@40 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Handle frame pointer omission (#21), part 3: SourceLineResolver and ↵mmentovai2006-09-289-49/+1165
| | | | | | | | | | | | | | | | | | | PDBSourceLineWriter changes. r=bryner. - PDBSourceLineWriter (dump_syms) outputs stack frame debugging information - SourceLineResolver reads the new information and puts it into a new StackFrameInfo structure, which is stored in a ContainedRangeMap. FillSourceLineInfo passes the StackFrameInfo back to the caller. - The base Stackwalker makes StackFrameInfo data available to subclasses during stackwalking, but does not use this information directly itself. Stackwalkers may access stack_frame_info_ for enhanced stackwalking (this will be part 4). - New test data for the updated dumped-symbol format http://groups.google.com/group/airbag-dev/browse_thread/thread/735f191c9a1a1de4 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@38 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Better testing for Stackwalker (#18). r=brynermmentovai2006-09-251-0/+252
| | | | | | | | | | | | | | - Test StackwalkerX86 and StackwalkerPPC on the current process, if built by a supported compiler (gcc) on a supported (walkable) CPU (x86, ppc). - This test is not enabled by default because of certain optimizations that interfere with it (stack frame reuse, frame pointer omission). See the comments at the top of stackwalker_selftest.cc. To enable this test in the standard "make check" suite, configure with --enable-selftest. http://groups.google.com/group/airbag-dev/browse_thread/thread/2ca1c8e72c809bec git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@35 4c0a9323-5329-0410-9bdc-e9ce6186880e
* ppc stackwalker (#30). r=brynermmentovai2006-09-259-73/+319
| | | | | | | | | | | | - 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
* Add ppc support to minidump reader (#27). r=bryner.mmentovai2006-09-224-118/+411
| | | | | | | | | | | | - Uses new MDRawContextPPC structure from #25. - Interface change: (MinidumpContext).context() replaced with GetContextCPU to determine CPU type and GetContextX86/GetContextPPC to get CPU-specific context. http://groups.google.com/group/airbag-dev/browse_thread/thread/f6c2e9cab2832b4c git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@33 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Handle frame pointer omission (#21), part 2: PostfixEvaluator. r=bryner.mmentovai2006-09-223-0/+627
| | | | | | | | | | | - A postfix (reverse-Polish) notation expression evaluator that we can feed stack-frame debug information into, crank, and get pointers to the calling frame from. http://groups.google.com/group/airbag-dev/browse_thread/thread/a1d6c5d1fd5fdcb9 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@32 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Relicense to BSD (#29). r=brynermmentovai2006-09-2027-221/+640
| | | | | | | 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
* Improve documentation in minidump_format.h (#28). r=brynermmentovai2006-09-201-83/+319
| | | | | | | http://groups.google.com/group/airbag-dev/browse_thread/thread/17840a32fb296638 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@30 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Handle frame pointer omission (#21), part 1: ContainedRangeMap. r=bryner.mmentovai2006-09-208-71/+632
| | | | | | | | | | | | | - ContainedRangeMap is the data structure that will be used to store and look up debugging information for frames by instruction address. The debugging information includes a way to locate the calling frame in the absence of a saved frame pointer. - Restructure RangeMap into an -inl file to match ContainedRangeMap. http://groups.google.com/group/airbag-dev/browse_thread/thread/c5823bfc1828ed42 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@29 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add ppc types to minidump_format.h (#25). r=waylonismmentovai2006-09-202-35/+178
| | | | | | | | | | | | | | - New MDRawContextPPC struct, based on ppc_thread_state and others in mach/ppc/_types.h. - Add (defining where necessary) MDCPUArchitecture and MDOSPlatform enums to support non-x86/win dumps. Add MD_CONTEXT_* definitions for non-x86 CPUs. - Document a few more fields. http://groups.google.com/group/airbag-dev/browse_thread/thread/963028fc01547851 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@28 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Follow-up to #26: get rid of supplier_data, it's not really needed sincebryner2006-09-207-36/+13
| | | | | | | 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-197-126/+137
| | | | | | | | (#26) r=mmentovai. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@26 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Stylistic changes for RangeMap (#24). r=brynermmentovai2006-09-142-47/+41
| | | | | | | http://groups.google.com/group/airbag-dev/browse_thread/thread/97c378bd175ab7c0 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@25 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Typo fixes. Patch by Ludovic Hirlimann.mmentovai2006-09-141-2/+2
| | | | | | | http://groups.google.com/group/airbag-dev/browse_thread/thread/5d523eea06731806 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@24 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Make SourceLineResolver use RangeMap (#13). r=brynermmentovai2006-09-087-6635/+6793
| | | | | | | | | | | | | | | - Eliminate MemAddrMap from source_line_resolver.cc and adapt it to use RangeMap, also used by minidump.cc. - RangeMap operates on both a base address and a size, where MemAddrMap only used a base address, so the dumped symbol file format is modified to include size information. dump_syms produces these files and SourceLineResolver consumes them. - Provide updated test data conforming to the new dumped symbol format. http://groups.google.com/group/airbag-dev/browse_thread/thread/e9403cf3ad6336a1 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@21 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Change interface for providing files to Minidump (#19). r=brynermmentovai2006-09-085-49/+47
| | | | | | | | | | | | - Interface change: Minidump constructor now accepts a const string& path argument instead of int fd. Minidump will open the file on first Read and close it upon destruction. - Adapt callers to new interface, no longer leaking file descriptors. http://groups.google.com/group/airbag-dev/browse_thread/thread/ff24dbcde7db8ae3 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@20 4c0a9323-5329-0410-9bdc-e9ce6186880e
* addressing follow-up review comments from mark (#17)bryner2006-09-082-5/+4
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@19 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add support to the StackWalker for resolving symbols, using abryner2006-09-0811-28/+10963
| | | | | | | | | | | | 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
* Make SourceLineResolver fill a StackFrame rather than using its own struct ↵bryner2006-09-073-69/+59
| | | | | | (#16), r=mmentovai. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@17 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Conform to style guidelines.mmentovai2006-09-078-593/+572
| | | | | | | | | | | | - 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
* minidump_dump test is timezone-dependent (#15). r=brynermmentovai2006-09-072-2/+2
| | | | | | | | - Use gmtime (UTC) instead of localtime for human-readable presentation of (MDRawHeader).time_date_stamp. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@15 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-067-0/+479
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@12 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Initial implementation of minidump reader (#6). r=brynermmentovai2006-09-0610-0/+7686
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@11 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Change header paths and include guards to be relative to the "src" ↵bryner2006-09-053-5/+5
| | | | | | | | | | directory. r=mmentovai. http://groups.google.com/group/airbag-dev/msg/cbe061dd563e9d17 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@10 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Make build system less annoying (#8) r=brynermmentovai2006-08-303-10/+10
| | | | | | | | | | | - Place objects in the appropriate directories, instead of filling up the root directory. - Remove namespace macros, which made maintenance troublesome and which created a dependency on config.h in public headers - Skip useless Fortran checks at configure time git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@8 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Initial import, which includes the Windows client-side dump_syms tool, andbryner2006-08-256-0/+475
part of the server-side dump processor. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@4 4c0a9323-5329-0410-9bdc-e9ce6186880e