aboutsummaryrefslogtreecommitdiff
path: root/src/client/windows/handler
Commit message (Collapse)AuthorAgeFilesLines
* Also treat DBG_PRINTEXCEPTION* as debug exceptionsTim Angus2016-10-181-1/+3
| | | | | | | | | | | | | Windows 10 now raises an exception when OutputDebugString* are called: (https://ntquery.wordpress.com/2015/09/07/windows-10-new-anti-debug-outputdebugstringw/) This change ignores these exception types such that they're not falsely identified as a crash. BUG= Change-Id: I1326212662d46e16407681d5ea6377f63ee188ce Reviewed-on: https://chromium-review.googlesource.com/398998 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Fix breakpad compilation issue with clang on WindowsRafal Chlodnicki2016-08-251-6/+4
| | | | | | | | | | | | | | Fix unused variable error. Code that uses the kWaitForHandlerThreadMs constant is inside and ifdef so in some compile configurations constant was unused. Move it where it's used. And do the same with other constants as requested during review. BUG= Change-Id: I4f4c8f36c982092d53438ed6d2a0a97772402d69 Reviewed-on: https://chromium-review.googlesource.com/374378 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Add a new argument to specify the minidump type to write on Windows.Ting-Yu Chou2016-06-292-6/+10
| | | | | | | R=ted.mielczarek@gmail.com BUG=https://bugzilla.mozilla.org/show_bug.cgi?id=1267329 Review URL: https://codereview.chromium.org/2107083002/ .
* Add option to Breakpad to consume INVALID_HANDLE_VALUE exceptions.wfh@chromium.org2015-02-222-0/+19
| | | | | | | | | BUG=chromium:452613 R=mark@chromium.org Review URL: https://breakpad.appspot.com/7794002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1427 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix Windows client compilation on mingw.ted.mielczarek@gmail.com2014-11-032-3/+3
| | | | | | A=Jacek Caban <jacek@codeweavers.com>, R=ted at http://breakpad.appspot.com/548002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1399 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Moving directory 'build' one level up as it collides with a file named ↵ivan.penkov@gmail.com2014-04-101-1/+1
| | | | | | | | | | 'BUILD' which happens to be in that same location in the Google source depot. R=chrisha@chromium.org, mark@chromium.org Review URL: https://breakpad.appspot.com/1504002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1308 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move build configuration to root of repository.chrisha@chromium.org2014-04-031-3/+2
| | | | | | | | | | | This is in preparation for creating GYP build files for each platform. BUG=https://code.google.com/p/google-breakpad/issues/detail?id=575 R=mark@chromium.org Review URL: https://breakpad.appspot.com/1414002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1304 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Treat warnings as error and fix most level 4 warnings in the breakpad ↵ivan.penkov@gmail.com2013-06-042-16/+14
| | | | | | | | | | | windows client projects. Some of the lint errors in the files touched by this change were also fixed. BUG=533 Review URL: https://breakpad.appspot.com/601002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1189 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow option for efficient and safe opt out of in-proc dump generation for ↵ivan.penkov@gmail.com2013-04-232-30/+75
| | | | | | | | | | Windows breakpad clients. https://breakpad.appspot.com/549002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1157 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove <(library) usage from gyp files.thestig@chromium.org2013-01-191-1/+1
| | | | | | | | | | BUG=chromium:111541 Patch by Thiago Farina <tfarina@chromium.org>. Original code review: https://breakpad.appspot.com/513002/ Review URL: https://breakpad.appspot.com/515002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1101 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move scoped_ptr.h to commonted.mielczarek@gmail.com2013-01-171-1/+1
| | | | | | R=mark at https://breakpad.appspot.com/509002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1096 4c0a9323-5329-0410-9bdc-e9ce6186880e
* SuspendThread returns a DWORD value, so checking the return value with ">= 0"ivan.penkov@gmail.com2012-11-011-3/+6
| | | | | | | | | | | doesn't work. On failure, the return value is (DWORD) -1 (which is 0xFFFFFFFF). http://breakpad.appspot.com/491002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1075 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a really stupid bug in WriteMinidumpForChildProcessted.mielczarek@gmail.com2012-09-241-1/+1
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1047 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow generating minidumps from live processes on Windows.ted.mielczarek@gmail.com2012-09-182-110/+215
| | | | | | R=mark at https://breakpad.appspot.com/115002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1042 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow adding extra memory regions to minidump on linux/windowsted.mielczarek@gmail.com2012-09-182-18/+79
| | | | | | | A=Bill McCloskey <wmccloskey@mozilla.com>, ted, original patch from https://bugzilla.mozilla.org/show_bug.cgi?id=662646 R=mark at https://breakpad.appspot.com/450002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1041 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Speculatively back out r989 per http://codereview.chromium.org/10805065/ :mark@chromium.org2012-07-242-62/+18
| | | | | | | | | | | | | | | | | | | | Ted Mielczarek: > You could try backing out r989, although Mozilla has been running with that > patch for months without issue. Me: > src/client/windows/handler/exception_handler.cc in r989 appears to have > formatting problems, an unwanted property change, and no real Breakpad review > history, so maybe we should back it out anyway until the proper process is > followed. NACL Tests nacl_integration failures: http://build.chromium.org/p/chromium/builders/NACL%20Tests/builds/30138 chrome src/native_client/tests/inbrowser_crash_test/crash_dump_tester.py says that the observed failures are a symptom of crash_service.exe itself crashing. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@998 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Back out r996, reinstating r985. That wasn't it.mark@chromium.org2012-07-242-4/+48
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@997 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Speculatively back out r985 because it may be causing crash_service problemsmark@chromium.org2012-07-242-48/+4
| | | | | | | | for Chrome. See http://codereview.chromium.org/10805065/ . I'll recommit this if it wasn't the problem. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@996 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow adding extra memory regions to minidump on linux/windowsted.mielczarek2012-07-192-18/+62
| | | | | | A=Bill McCloskey <wmccloskey@mozilla.com> R=ted at https://bugzilla.mozilla.org/show_bug.cgi?id=662646 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@989 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow the crash generation server to be initialized with a handle instead ↵ted.mielczarek2012-07-162-4/+48
| | | | | | | | of a pipe name A=bsmedberg R=ted at http://breakpad.appspot.com/406002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@985 4c0a9323-5329-0410-9bdc-e9ce6186880e
* wires up the crash client side so that the deferred upload callback can be used.cdn@chromium.org2012-05-032-3/+10
| | | | | | | TEST=N/A Review URL: https://breakpad.appspot.com/384001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@961 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Eliminate another source of UnspecifiedStackSignature crash dumps.mark@chromium.org2011-12-211-45/+38
| | | | | | | | | | | | | | | | | Manufacturing an exception record improves the crash reporting, since then the crashes get bucketed by the call stack leading to the dump, instead of all falling into a misc bucket that nobody ever looks at. Currently these are occuring through e.g. dumps from the base watchdog. Link against RtlCaptureContext, as the function has been documented as available from Windows XP [http://msdn.microsoft.com/en-us/library/windows/desktop/ms680591(v=vs.85).aspx]. Patch by Siggi Asgeirsson <siggi@chromium.org> git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@897 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Speculative back-out of r883, which may have broken Windows crash reporting.mark@chromium.org2011-11-282-12/+0
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@891 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow CrashGenerationClient to request that a dump of the parent process be ↵ted.mielczarek2011-11-112-0/+12
| | | | | | | | written. A=Jim Mathies <jmathies@mozilla.com> R=ted at https://bugzilla.mozilla.org/show_bug.cgi?id=679238 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@883 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix svn:executable and svn:eol-style properties in src/client/windows.mark@chromium.org2011-10-201-0/+0
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@872 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Protect "std::max", "std::min" against MACROs defined in WinDef.h.SiyangXie@gmail.com2011-03-111-3/+3
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@780 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Use a MinidumpCallback to force minidumps on Windows to include memory ↵ted.mielczarek2011-01-252-1/+100
| | | | | | | | around the faulting instruction pointer. Older versions of DbgHelp don't seem to do this correctly (on Windows XP, for example) R=mark at http://breakpad.appspot.com/259001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@763 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Round-trip client/processor unittests for Windowsted.mielczarek2011-01-241-1/+1
| | | | | | R=mark at http://breakpad.appspot.com/258001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@762 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix HandleInvalidParameter/HandlePureVirtualCall to dynamically lookup the ↵ted.mielczarek2010-08-021-28/+50
| | | | | | RtlCaptureContext symbol so the Windows exception handler will continue to work on Windows 2000. Patch by Jim Mathies <jmathies@mozilla.com> and Timothy Nikkel <tnikkel@gmail.com>. r=ted git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@637 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Patch from Vitaly to remove synchronization and make exception handling code ↵nealsid2010-05-181-3/+1
| | | | | | single-threaded git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@602 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Added a death test for the pure virtual function call.hansl@google.com2010-05-131-2/+25
| | | | | | | | | Added a test for the minidump generated by a pure virtual function call. Changed the pure virtual function call handler so that it creates a minidump with Exception info and a stack. Review URL: http://codereview.chromium.org/2050013 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@597 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Moved exception_handler_test to the more aptly named ↵hansl@google.com2010-05-121-17/+12
| | | | | | | | | | | | | | | | exception_handler_death_test. It doesn't test anything else than death and exit. Created the exception_handler_test that test the generation of dump and the dumps themselves. Moved all dump analysis code from minidump to its right class DumpAnalysis. The class is used by both minidump_test and exception_handler_test. The tests are way simpler that way (ie. no handling of HANDLE). minidump_test now uses the minidump_generator class instead of using Win32. It works well and pass all tests. exception_handler now passes both the exception and assertion infos to the client to generate the dump. If one is NULL it's going to be handled correctly. crash_generation_client can now RequestDump with both exception and assertion info. minidump_generator returns both the mini and full dump string pointers, and output both (or either) depending on which was generated. All original interfaces and method signature are still there, but call the new functions if possible. Review URL: http://codereview.chromium.org/1994015 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@596 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Replacing solutions with gyp files. Moving tests for windows clients in ↵hansl@google.com2010-05-034-753/+48
| | | | | | | | unittests. Review URL: http://codereview.chromium.org/1687018 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@581 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix dependency on Visual C++ 9 introduced by revision 557.nealsid2010-04-291-1/+1
| | | | | | | | | | | A=nealsid r=mmentovai http://breakpad.appspot.com/105001/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@580 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix HandleInvalidParameter to provide a locally created exception record for ↵siggi@chromium.org2010-03-261-3/+23
| | | | | | | | | | | the minidump. Having an exception of interest makes the resultant minidumps look just like crash dumps, in that the processor can identify the "crashing" tread. This means such minidumps can be classified by the stack signature, in contrast to the current state of things, in which all such dumps get lumped on a single pile. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@557 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix an INVALIDATE_ITERATOR defect reported by Coverity.nealsid2009-07-301-5/+5
| | | | | | | | | | | | std::vector::erase() invalidates the iterator, so we need to advance the iterator by using the return value of erase(). R=nealsid A=wtc git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@370 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Integration test for Windows exception handler/minidump generation.nealsid2009-07-172-0/+430
| | | | | | | | | R=hannah tang A=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@358 4c0a9323-5329-0410-9bdc-e9ce6186880e
* AppVerifier leak test fix for Windows 7.doshimun2009-04-081-0/+2
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@327 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Reinstnate the call to TerminateThread inside ExceptionHandler destructor ↵doshimun2009-01-201-1/+10
| | | | | | | | | | | | | | | | | | | | | | and put the graceful code inside a #ifdef. The problem is: If ExceptionHandler is created and destroyed in DllMain, then the previous change to remove the call to TerminateThread will lead to a deadlock. This is because inside DllMain the loader lock is acquired, and the previous change waits for the handler thread to exit in the destructor, that is with the loader lock acquired. But the handler thread cannot finish until it gets the loader lock to call DllMain for THREAD_DETACH. With this change, we add conditional compilation so that clients that want to avoid the call to terminate thread can do it by defining the appropriate preprocessor variable. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@309 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix some typos in comments.doshimun2009-01-141-4/+4
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@307 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Minor fixes to windows exception handler.doshimun2009-01-142-15/+55
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@306 4c0a9323-5329-0410-9bdc-e9ce6186880e
* ExceptionHandler class is not handling initialization errors, such as themmentovai2008-12-031-8/+28
| | | | | | | | | | | | | handler thread not being created. Protect the exception handler against failure to create semaphores and a thread handle. Patch by Marc-André (MAD) Decoste, r=me http://code.google.com/p/google-breakpad/issues/detail?id=285 http://codereview.chromium.org/13065 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@300 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Some style guide compliance changes and changed the prototype of the method ↵doshimun2008-05-071-3/+3
| | | | | | to get custom client info in ClientInfo class. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@270 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add a way for the client apps to specify custom information in case of ↵doshimun2008-05-052-6/+16
| | | | | | | | | | | | | | out-of-process scenarios that the OOP server can use in whatever way it wants to. Fix a bug in CrashGenerationserver where CreateNamedPipe failure was not checked correctly. TODO in near future: Add a custom stream to minidump files for the custom information. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@267 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix newlines (#253). rs=ted.mielczarekmmentovai2008-04-071-323/+323
| | | | | | | http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/7e62a299ce3fa222 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@255 4c0a9323-5329-0410-9bdc-e9ce6186880e
* TO BE REVIEWED.doshimun@gmail.com2008-03-111-0/+8
| | | | | | | | | | | | | | | | | | | | | | | 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
* Overview:doshimun@gmail.com2008-03-082-178/+336
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Remove dependency on ole32 on Windows (#132). Patch by Sorin Jianu ↵mmentovai2008-01-282-10/+32
| | | | | | <sorinj>, r=me. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@237 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Make Breakpad's debug-exception-ignoring configurable. r=Nicolas Sylvainmmentovai2007-10-182-3/+18
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@224 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add accessor for ExceptionHandler::requesting_thread_id_ (#198). Patch by ↵mmentovai2007-08-171-0/+6
| | | | | | | | | 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