I waited for the style reviewer to approve all my code so hopefully there
should be no more style related check-ins.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@256 4c0a9323-5329-0410-9bdc-e9ce6186880e
Have sent an email for code review already but this check-in is urgent
to fix potential build breaks.
It contains the following changes:
- Change project settings for exception_handler.vcproj so that it links in
crash_generation.lib so that the applications using exception_handler.lib
do not have to link to crash_generation.lib. Make these changes for all 4
build configurations.
- Change the test app project settings to not link to crash_generation.lib
and only link to exception_handler.lib; again for all four configurations.
These changes help the applications that are currently linking to exception_handler.lib
in that they don't have to link to one more lib to get out-of-process dump generation
functionality. In fact, even if they do not use out-of-process dump generation functionality,
after those changes, the apps will need to link with crash_generation.lib anyway in order to
build correctly. This change will eliminate that need.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@248 4c0a9323-5329-0410-9bdc-e9ce6186880e
added in my last check-in for out-of-process dump generation. My last check-in broke the breakpad_client.sln
build for non debug builds since for the new project that I added (crash_generation.vcproj) to that solution,
I always only changed project properties for debug build. In fact, I didn't have the static-crt build configurations
for the new project either. Similar problems existed for the test application I added, windows/test/crash_generation_app).
This changelist contains changes to 2 solution files, 2 vcproj files and 1 .cc file. The fixes to .cc file are to avoid
warnings on variables used only in debug modes (in asserts) when building in release modes.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@247 4c0a9323-5329-0410-9bdc-e9ce6186880e
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
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