Commit Graph

116 Commits

Author SHA1 Message Date
mmentovai
2fc823f579 Add PUBLIC support to SourceLineResolver (resolve function names in Windows
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
2006-10-20 19:50:01 +00:00
mmentovai
246f406828 Handle frame pointer omission, (#21), part 4 (final part!): FPO stackwalker.
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
2006-10-20 01:46:38 +00:00
mmentovai
fc1c78e60e Handle frame pointer omission (#21), part 3: SourceLineResolver and 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
2006-09-28 21:09:37 +00:00
mmentovai
0dbedc973d Better testing for Stackwalker (#18). r=bryner
- 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
2006-09-25 21:16:15 +00:00
mmentovai
960e5277ee ppc stackwalker (#30). r=bryner
- 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
2006-09-25 18:29:48 +00:00
mmentovai
b934bb974a Handle frame pointer omission (#21), part 2: PostfixEvaluator. r=bryner.
- 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
2006-09-22 00:42:23 +00:00
mmentovai
7daf246e4b Relicense to BSD (#29). r=bryner
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
2006-09-20 21:16:16 +00:00
mmentovai
8c2a4def4e Handle frame pointer omission (#21), part 1: ContainedRangeMap. r=bryner.
- 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
2006-09-20 16:20:15 +00:00
bryner
cce3492afc Get rid of CrashReport, and rename CrashReportProcessor to MinidumpProcessor
(#26) r=mmentovai.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@26 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-09-19 21:58:41 +00:00
mmentovai
cb9fd5b773 Make SourceLineResolver use RangeMap (#13). r=bryner
- 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
2006-09-08 18:03:56 +00:00
bryner
d5e66382d1 Add support to the StackWalker for resolving symbols, using a
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
2006-09-08 02:35:53 +00:00
mmentovai
213800d30c Initial implementation of x86 stackwalker (#9). r=bryner
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@12 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-09-06 19:28:46 +00:00
mmentovai
3261e8b6ea Initial implementation of minidump reader (#6). r=bryner
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@11 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-09-06 02:56:44 +00:00
bryner
07f8ef56ac Change header paths and include guards to be relative to the "src" 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
2006-09-05 19:42:57 +00:00
mmentovai
425d256321 Make build system less annoying (#8) r=bryner
- 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
2006-08-30 20:05:05 +00:00
bryner
cb91a2f879 Initial import, which includes the Windows client-side dump_syms tool, and
part of the server-side dump processor.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@4 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-08-25 21:14:45 +00:00