Commit graph

33 commits

Author SHA1 Message Date
ivan.penkov@gmail.com 6de969a304 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
2012-06-28 22:46:01 +00:00
SiyangXie@gmail.com a8c1c466a1 Restrict ownership of symbol data buffers to symbol supplier.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@721 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-11-01 17:31:31 +00:00
SiyangXie@gmail.com 5b117cf53a Refactor source line resolver, add interface in supplier and resolver.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@711 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-10-07 20:31:36 +00:00
cdn@chromium.org 2b4274afc4 Added libdisasm to the repository. This library is no longer under development so there
is no reason not to keep it locally. Implemented a basic disassembler which can be used
to scan bytecode for interesting conditions. This should be pretty easy to add to for
things other than exploitability if there is a desire. This also adds several tests to
the windows exploitability ranking code to take advantage of the disassembler for x86
code.

BUG=None
TEST=DisassemblerX86Test.*

Review URL: http://breakpad.appspot.com/203001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@705 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-10-01 22:38:10 +00:00
cdn@chromium.org cec12872c4 Added the base exploitability module for windows. This only adds the very basic exception type based analysis for now.
BUG=NONE
TEST=MinidumpProcessorTest.TestExploitilityEngine

Review URL: http://breakpad.appspot.com/189001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@698 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-09-22 02:37:19 +00:00
jessicag.feedback@gmail.com 9fc5812260 Fix a handful of comment spelling errors (Issue 385)
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@682 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-09-09 21:37:54 +00:00
nealsid 8d2c518c0b Patch from CDN to add support for an exploitability engine
A=cdn
R=nealsid



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@662 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-08-24 14:28:10 +00:00
ted.mielczarek e193098543 Breakpad: Avoid using the C++ <cfoo> headers.
This patch avoids unnecessary use of the <cfoo> headers in files that don't
actually use the identifiers they declare in the std:: namespace.

It also changes some files to better conform with the "Names and Order of
Includes" rules in the Google C++ Style Guide.

A=jimb R=mark

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@619 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-06-25 16:57:07 +00:00
nealsid e4cc9b12ec Fix test breakage caused by my last checkin :-(
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@607 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-06-04 20:53:20 +00:00
nealsid 19374d2636 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
2010-03-03 01:29:04 +00:00
jimblandy 5ebd6507e3 Breakpad processor: Use unsigned constants in comparisons, to quiet compiler warnings.
This patch avoids comparisons between signed and unsigned values, as
warned about by G++ 4.4.1.

a=jimblandy, r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@469 4c0a9323-5329-0410-9bdc-e9ce6186880e
2009-12-23 22:01:57 +00:00
nealsid 1a997295b6 Removed logging init macro from minidump_processor_unittest, since with the Google Test integration, logging is handled through it's facilities
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@345 4c0a9323-5329-0410-9bdc-e9ce6186880e
2009-05-29 20:49:04 +00:00
nealsid b56cfa067a Add more error information to minidump processing return code. Also added dependency on google test, and modified minidump processing unit tests to use google test
R=brdevmn
A=nealsid



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@343 4c0a9323-5329-0410-9bdc-e9ce6186880e
2009-05-29 00:53:02 +00:00
nealsid 2ad976ef0b Fix for issues 296, 297. Various symbol supplier classes need to be updated with new overload('make check' was failing, as well as crash_report), and remove logging that was flooding output
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@318 4c0a9323-5329-0410-9bdc-e9ce6186880e
2009-02-27 23:59:40 +00:00
mmentovai 32b802dba3 Provide for logging initialization routines (#179). r=bryner
http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/4b196ca0b6d7f9a6


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@177 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-05-25 18:04:17 +00:00
mmentovai e5dc60822e Rename Airbag to Breakpad.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@122 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-02-14 19:51:05 +00:00
mmentovai 97d392dc4b Communicate OS and CPU to SymbolSupplier (#107). r=bryner
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
2007-01-10 22:47:56 +00:00
bryner fd38d48e6d Add an abstract interface to SourceLineResolver, and allow any implementation
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
2006-12-11 23:22:54 +00:00
bryner f33b8d2d07 Provide a mechanism for SymbolSuppliers to interrupt processing (#93)
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@80 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-12-08 04:13:51 +00:00
mmentovai 283fd39248 Allow exception handler callbacks more flexibility (#81). r=bryner
- Provide an optional filter callback that gets triggered before attempting
   to write a dump, to give client code a chance to refuse handling early
   in the process.
 - Allow exceptions that are unhandled by Airbag (due to filter callback or
   dump callback return value, or failure to write a dump) to be passed to the
   previous handler or to the system.
 - In order to pass exceptions unhandled by the topmost Airbag handler to
   lower handlers, fix up the stacking of ExceptionHandler objects, and give
   each ExceptionHandler object its own thread (like the Mac implementation)
   to avoid deadlock.
 - Provide a dump_path argument to callbacks, as requested by developers and
   already implemented in the Mac handler.
 - Avoid calling c_str in exception handler code (#90).

http://groups.google.com/group/airbag-dev/browse_thread/thread/4771825ced38a84c


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@79 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-12-07 20:46:54 +00:00
mmentovai db3342a10e Module API (#32). r=waylonis, bryner
- 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
2006-12-05 22:52:28 +00:00
mmentovai 8647dde8cc Limit use of default namespace in tests and utility programs (#71). r=bryner
- main is now the only thing you'll find in the default namespace.
   Everything else has been moved into an unnamed namespace.

http://groups.google.com/group/airbag-dev/browse_thread/thread/14130a0284a0307f


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@63 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-11-09 17:04:56 +00:00
mmentovai 76f052f8fb Suppress handler thread from appearing in MinidumpProcessor's ProcessState
(#65).  r=bryner
 - Interface change: (ProcessState).crash_thread is now requesting_thread and
   will be populated for non-crash dumps.  If the requesting thread cannot
   be determined, requesting_thread is set to -1.

http://groups.google.com/group/airbag-dev/browse_thread/thread/c422ec481a2db440


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@62 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-11-06 23:00:19 +00:00
mmentovai fe82bf24a9 Move headers for exported interfaces into src/google_airbag (#51). r=bryner
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
2006-11-06 19:39:47 +00:00
mmentovai c34850a202 minidump_stackwalk should use MinidumpProcessor (#64). r=bryner
- minidump_stackwalk is now much more useful as a debugging tool and
   even as a standalone tool.
 - Reimplementation of minidump_stackwalk around MinidumpProcessor.
 - minidump_stackwalk displays all pertinent information returned by
   MinidumpProcessor in the ProcessState.
 - New PathnameStripper::File static utility method to display only the
   leaf file name in a pathname, cleaning up minidump_stackwalk's output.
 - New SimpleSymbolSupplier class, which implements a simple
   filesystem-based symbol supplier compatible with the layout used by
   Microsoft Symbol Server and its client cache.
 - minidump_stackwalk now accepts an optional second argument, a pathname
   to use as a symbol directory for a SimpleSymbolSupplier.
 - Updated test data to be compatible with SimpleSymbolSupplier, and added
   test data for kernel32.pdb.  Test data converted from CRLF line endings
   to LF.

http://groups.google.com/group/airbag-dev/browse_thread/thread/cce30a84f6b2d728


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@53 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-10-27 00:40:56 +00:00
mmentovai 80e98391dc Fix minor style problems (#58). r=bryner
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
2006-10-25 21:25:41 +00:00
mmentovai e5468b8a49 MinidumpProcessor should process all threads (#35). r=bryner
- MinidumpProcessor now processes all threads and returns a new ProcessState
   object.  (Interface change.)
 - ProcessState contains a CallStack for each thread in the process, and
   additional information about whether the process crashed, which thread
   crashed, the reason for the crash, and identifying attributes for the
   OS and CPU.
 - MinidumpSystemInfo now contains a GetCPUVendor() method that returns the
   vendor information from CPUID 0 on x86 processors ("GenuineIntel").

http://groups.google.com/group/airbag-dev/browse_thread/thread/16dd2c981e3361ba


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@47 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-10-24 19:31:21 +00:00
mmentovai 2466d8e993 Replace auto_ptr with scoped_ptr (#56). r=bryner
http://groups.google.com/group/airbag-dev/browse_thread/thread/54c66451ed8e2835


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@46 4c0a9323-5329-0410-9bdc-e9ce6186880e
2006-10-23 20:25:42 +00:00
mmentovai d119a921ea Make stack_frame_info vector hold linked_ptrs instead of objects;
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
2006-10-23 19:24:58 +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 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
bryner 0170bea32f Follow-up to #26: get rid of supplier_data, it's not really needed since
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
2006-09-20 00:00:12 +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