Commit Graph

239 Commits

Author SHA1 Message Date
doshimun@gmail.com
c79141e306 Overview:
Implement out-of-process dump generation for Windows platform.

Details:
- Created a lib, crash_generation.lib, that implements the out-of-process dump generation protocol.
- The lib code is under client/windows/crash_generation folder and is organized in the following way:
	- CrashGenerationServer class (crash_generation_server.h/.cc) implements the server side of
	  the protocol.
	- CrashGenerationClient class (crash_generation_client.h/.cc) implements the client side of
	  the protocol.
	- MinidumpGenerator class (minidump_generator.h/.cc) serves as an abstractino for generating
	  dump files using Windows APIs, coming up with new file names by creating GUIDs, etc.
	- ProtocolMessage class (ipc_protocol.h) represents the message format between the client and server
	  for pipe IPC.
	- Server allows one client at a time on the pipe in the current implementation.
	- ReadMe.txt explains the state machine the server uses to serve clients.
- ExceptionHandler is modified and a new constructor is added that allows specifying the pipe name. If the
  pipe name is NULL, the behavior is backward compatible - in-process dump generation is done as before. If
  the pipe name is specified, out-of-process dump generation registration is attempted. If that fails, the
  behavior is again backward compatible.
- If out-of-process registration succeeds, all write dump requests, direct or indirect, are directed to
  crash server process that served the registration request. NOTE that the explicit dump requests made by
  calling the static method of ExceptionHandler are not directed to theserver.
- client/windows/tests/crash_generation_app implements a simple Win32 GUI application to help test the
  out-of-process dump generation client and server. Typical use of the app is to start one instance, click
  Server --> Start and then start the other instance. The other instance will register with the first
  instance automatically at start-up. Then the second instance can be used to request various typoes of
  dump requests by using options under the Client menu.




git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@244 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-03-08 00:02:40 +00:00
bryner
98cb0aebff Use "%" PRIx64 instead of "%llx" for 64-bit portability.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@243 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-03-04 20:28:39 +00:00
bryner
76ef9deb31 Don't redefine __STDC_FORMAT_MACROS if it's already defined. r=mmentovai.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@242 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-03-04 17:33:25 +00:00
mmentovai
c27cf3e395 Use "%" PRIx64 instead of "%llx" (#241). r=bryner
http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/327dc5326077e48d


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@241 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-02-25 19:32:00 +00:00
ted.mielczarek
2c2ae28541 issue 238 - missing includes compiling with gcc 4.3. patch by taras glek, r=me
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@240 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-02-24 21:04:51 +00:00
ted.mielczarek
c1e0783204 Use swprintf_s for VC8 or newer. r=mento
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@238 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-02-04 20:50:07 +00:00
mmentovai
469580e2df Remove dependency on ole32 on Windows (#132). Patch by Sorin Jianu <sorinj>, r=me.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@237 4c0a9323-5329-0410-9bdc-e9ce6186880e
2008-01-28 20:02:01 +00:00
luly81
b801cd6d0f Fix issue 235, properly handling included(inlined) code.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@236 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-12-13 06:56:23 +00:00
ted.mielczarek
b3673d13a1 Issue 224 - add Tell method to Minidump class. r=mento
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@235 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-12-04 20:41:02 +00:00
ted.mielczarek
e8eafaaa2e slight fixup from issue 225
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@234 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-12-03 22:12:25 +00:00
ladderbreaker
4139a40807 fix Mac build by adding stackwalker_amd64.cc to project
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@233 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-11-21 21:07:22 +00:00
ted.mielczarek
68b4798eb4 Issue 225 - dynamically load libcurl in http_upload. patch by Andrew Schultz <ajschult@verizon.net>, r=Liu Li
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@232 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-11-20 02:35:47 +00:00
ted.mielczarek
f0a07749af Fix compile bustage from issue 221
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@231 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-11-20 02:21:49 +00:00
luly81
299c816021 Add MD_CPU_ARCHITECTURE_AMD64 as valid system type when cpu type is MD_CONTEXT_X86
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@230 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-11-19 05:53:21 +00:00
mmentovai
bbd9b47291 The string buffer lengths in a URL_COMPONENTS structure are in TCHARs, so
these should be sizeof(z) / sizeof(z[0]) to avoid a buffer overrun.  Caught
by Dmitry Titov, r=me.


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@229 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-11-13 22:17:14 +00:00
ted.mielczarek
feff0b300f Issue 221 - HTTPUpload::SendRequest should provide error code or error description to callers. r=Liu Li
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@228 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-11-02 12:22:35 +00:00
ted.mielczarek
8eb7111814 Issue 196 - Breakpad processor support for x86-64. r=mento
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@227 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-10-31 19:20:31 +00:00
mmentovai
11e180cd3e Fix warning regarding initialization order compared to definition order
following #222.


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@226 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-10-22 16:00:35 +00:00
ted.mielczarek
d732add382 Issue 222 - processor fails if an entry in the ModuleList is bad. r=mento
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@225 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-10-19 18:44:51 +00:00
mmentovai
f4021f0c68 Make Breakpad's debug-exception-ignoring configurable. r=Nicolas Sylvain
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@224 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-10-18 20:54:20 +00:00
mmentovai
e47d3a6e36 Remove assertion for a variable that doesn't exist. Patch by Alfred Peng
<alfred.peng>.  r=me.

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


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@223 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-10-15 20:47:12 +00:00
mmentovai
56d93f4902 Make sure ENOENT is defined. Spotted by jfbastien <bourgeoisie>.
http://groups.google.com/group/google-breakpad-discuss/browse_thread/thread/47f82fe37b7a46d8


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@222 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-10-10 21:15:10 +00:00
ladderbreaker
a100421d48 fix crash_report build due to link error
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@221 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-29 01:02:13 +00:00
mmentovai
d7d6c74a68 Breakpad rejects valid modules with a vmaddr of zero on Mac (#176). Patch
by Benjamin Smedberg <bsmedberg>.  r=me


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@220 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-28 18:30:48 +00:00
mmentovai
657a6c4a96 Assertion in CrashReportSender (windows) when no checkpoint file is desired
(#216).  Patch by Ben Turner <bent.mozilla>.  r=me.


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@219 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-28 18:24:13 +00:00
mmentovai
68004c84d6 Solaris version of symbol dumper (#207). Patch by Alfred Peng. r=me
http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/e4cbdbf7ddaf7f51


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@218 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-28 18:14:48 +00:00
mmentovai
f2fa084fd2 Fix compiler warning C4245: signed/unsigned mismatch when converting between
types.  Patch by Sorin Jianu.  r=me,bryner


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@217 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-28 16:27:56 +00:00
mmentovai
13f0b2666b Update EXTRA_DIST for packaging.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@216 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-26 18:37:39 +00:00
mmentovai
ea2bba9706 Add SPARC/Solaris support to client handler and processor (#201, 200).
Patch by Michael shang <satisfy123>.  r=me, r=Alfred Peng.

http://groups.google.com/group/google-breakpad-discuss/browse_thread/thread/2fba07577f1fa35e


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@215 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-26 18:28:05 +00:00
mmentovai
278946c3b5 Fix crash reason switching to allow proper behavior for Linux. Spotted by
Michael Shang <satisfy123>, mentioned in issue #200.  r=me

http://groups.google.com/group/google-breakpad-discuss/browse_thread/thread/2fba07577f1fa35e


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@214 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-26 18:13:38 +00:00
mmentovai
0e6f5c95d7 Allow Breakpad processor library to build on Solaris with the native Sun
toolchain (#142).  Patch by Alfred Peng.  r=me.


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@213 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-26 18:08:41 +00:00
mmentovai
7e2b64f5fd Fix license boilerplate on these two files. Apparently these were missed
when the boilerplates were fixed in revision 31/bug 29 - these files
were checked in at revision 32.


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@212 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-26 17:55:53 +00:00
bryner
28c645f3ee Silences warning C4701: local variable 'claimed_size' may be used with out
having been initialized.  The code is correct however the compiler can't see
the relationship between has_content_length_header and the claimed_size so it
generates a warning.

Patch from Sorin Jianu, r=bryner



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@211 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-20 21:48:47 +00:00
ladderbreaker
48309a2dbc Issue 208: Reviewer waylonis
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@210 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-19 20:43:38 +00:00
ladderbreaker
30dfc3d392 Issue 208: Reviewer waylonis
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@209 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-19 20:15:21 +00:00
ladderbreaker
649967cfd2 Issue 209: Reviewer waylonis
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@208 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-19 20:14:21 +00:00
dmaclach
99b36baa82 Adds the ability to designate a folder with sym files in it that will be used for symbol matching
to crash_report.


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@207 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-15 00:33:09 +00:00
ladderbreaker
d792274003 Issue203 : reviewed by Waylonis
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@206 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-08-29 21:28:46 +00:00
ladderbreaker
69d242245a Issue 202: reviewed by Waylonis
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@205 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-08-27 19:46:32 +00:00
ladderbreaker
9982e65506 Issue 199: Reviewed by Waylonis
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@204 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-08-17 21:22:16 +00:00
mmentovai
6a3f87982d Add accessor for ExceptionHandler::requesting_thread_id_ (#198). Patch by Lucas Eckels. r=me
http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/37da2dd8c14659c3


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@203 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-08-17 19:42:18 +00:00
ladderbreaker
70c7438bff Issue 197: reviewed by Waylonis
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@202 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-08-16 20:22:37 +00:00
ladderbreaker
8597ff9fe1 Issue 197: reviewed by Waylonis
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@201 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-08-16 20:20:50 +00:00
ladderbreaker
7d8a79b3e9 Issue 197: reviewed by Waylonis
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@200 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-08-16 20:20:31 +00:00
ladderbreaker
8aef89f021 Issue 197: reviewed by Waylonis
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@199 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-08-16 20:19:45 +00:00
mmentovai
9abfe3d0a5 Solaris port of minidump generator. Port by Alfred Peng. r=me
http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/7d8945578e3dac3


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@198 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-08-07 21:16:45 +00:00
ted.mielczarek
b62d01462c Issue 175 - fix permissions on dump file in MinidumpFileWriter. r=mento
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@197 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-07-05 22:13:02 +00:00
ted.mielczarek
8408a209cd issue 151 - Crash when processing file names less than 4 bytes. r=me
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@196 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-07-05 19:31:59 +00:00
ladderbreaker
43a81daaba issue 194: reviewed by waylonis
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@195 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-07-03 00:09:14 +00:00
mmentovai
3c07b28119 These should be int to allow them to be ORed together. Ted, please review.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@194 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-07-02 20:41:30 +00:00