aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Added some sanity checks when iterating over threads in a crashed process. ↵nealsid2008-11-191-22/+47
| | | | | | | | | | In same cases the ESP could be 0. In other cases it would be borked completely(i.e. pointing to an invalid range). R=Jeremy Moskovich git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@295 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix for dump_syms to ignore line number information for addresses that don't ↵nealsid2008-11-031-16/+25
| | | | | | have an enclosing function git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@293 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Undo suspend/resume feature since it was meant as a workaround to a bug in ↵nealsid2008-10-272-61/+20
| | | | | | how we handled child process exceptions. Currently we don't return to the kernel when we take an exception from a child process, causing a hang. Now we return KERN_FAILURE, indicating to the kernel to move on to the host-level exception handler(usually Crash Reporter) git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@292 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Issue 181: Add version info for Mac OS X modules. Found by iterating over ↵nealsid2008-10-227-96/+174
| | | | | | load commands until I found LC_ID_DYLIB. Also modified crash_report to generate version number. Also added suspend/resume capability to exception handler, necessary because exception handling can behave strangely across fork() calls. Also added fix for filtering out functions with no line number information, and for filtering out some multiple inheritance glue the compiler generates. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@291 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Issue 276 - generate GUIDs ahead of time in Linux handler. r=Liu Lited.mielczarek2008-10-142-29/+55
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@290 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix for DWARF processing when inline functions were encountered. Inline ↵nealsid2008-10-141-5/+37
| | | | | | functions were part of the debugging information as sequential in the PC range of the function but the source file was where the function was written(as you might expect). However the old dump_syms code, once it switched files as it was iterating over a range of addresses, never switched back, causing inline functions to cause all file numbers for addresses after the PC of the inline function to be wrong git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@289 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix warning when converting int to boolnealsid2008-10-101-1/+1
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@288 4c0a9323-5329-0410-9bdc-e9ce6186880e
* fix a typo in the makefile, HANDLER_SRC->HANDLER_OBJted.mielczarek2008-10-101-1/+1
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@287 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Added DWARF support to Breakpad client. Thanks to Google for open sourcing ↵nealsid2008-10-0821-31/+8525
| | | | | | | | | | | | their DWARF code! Modified dump_syms to detect dSYM bundles or a binary with DWARF data appropriately, and convert data from DWARF reader to dump_syms native structures R=danny.berlin (original writer of DWARF code) git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@286 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Generate Windows full memory dumps as a separate file. Patch by Huan Renmmentovai2008-09-161-7/+56
| | | | | | | <huanr@google.com>. r=me git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@285 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Include what you use: include <algorithm> and <string.h> as needed. Patch bymmentovai2008-09-152-0/+2
| | | | | | | Robert Henry. r=me git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@284 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Log a failure message in case of LOCATE_NOT_FOUND error.doshimun2008-07-301-0/+6
| | | | | | | | Without this change, no error is logged in this case. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@283 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Now we provide our own implementation of the MIG function exc_server, as ↵nealsid2008-07-114-0/+2083
| | | | | | | | | | | | recommended by Apple. See http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/8b363b1f8a404714 For more information git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@282 4c0a9323-5329-0410-9bdc-e9ce6186880e
* In the destructor of ClientInfo, currently the wait on the ↵doshimun2008-06-091-10/+10
| | | | | | | | | | | | | clent_crashed_event is unregistered after the handle is closed. MSDN clearly says that the behavior is undefined in this case. See http://msdn.microsoft.com/en-us/library/ms685061(VS.85).aspx This change contains the fix for that bug. See attched diff. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@281 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Client process uptime is a very useful metric for crashes. Instead of each ↵doshimun2008-06-062-3/+42
| | | | | | | | | | | client process having to keep track of uptime and report it whenever a crash happens, integrate this feature into breakpad OOP code so that all clients get it for free. I tested this using the test app I have to test OOP stuff. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@280 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Modified symupload to correctly handle spaces in module names when ↵nealsid2008-06-051-3/+18
| | | | | | | | | | processing symbol file Reviewer=mmentovai git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@279 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix the following bug:doshimun2008-06-051-1/+1
| | | | | | | | | The sender updates the checkpoint file even when the report is not successfully sent. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@278 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Filter out duplicates from the image list when creating a minidump. See ↵nealsid2008-06-042-0/+13
| | | | | | | | | | issue 266 for more details. Reviewer = mmentovai git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@277 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Set the dump thread id and the requesting thread id properties of ↵doshimun2008-05-311-5/+9
| | | | | | | | | | | | | | MDRawBreakpadInfo only in case of in-process dump generation; otherwise the dump processing code of breakpad doesn't identify the crashing thread properly. I am checking this in to-be-reviewed since it is needed urgently in one of the products at Google. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@276 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix to ignore source files that have a text address of 0 in their stabs entrynealsid2008-05-191-0/+10
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@275 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Microsoft broke PROCESS_ALL_ACCESS when we build with WINVER=0x600. See ↵doshimun2008-05-152-2/+2
| | | | | | | | | | | | | | | http://nsylvain.blogspot.com/2008/01/winverwin32winnt-mayhem.html for details (second half of the post). Changing PROCESS_ALL_ACCESS to GENERIC_ALL in ClientInfo class when opening the client process handle on the OOP server side. A minor change to pipe name in the test app also. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@274 4c0a9323-5329-0410-9bdc-e9ce6186880e
* 64-bit processor can't handle 32-bit ppc minidumps due to struct paddingmmentovai2008-05-141-0/+7
| | | | | | | | | | differences on 64- and 32-bit CPUs. Force 32-bit alignment rules for 32-bit ppc context struct. r=nealsid http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/21a8e99c4800b51d git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@273 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix to stop unit tests from being compiled & run for non-native architecturesnealsid2008-05-081-4/+1
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@272 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Replace the user of wcscpy_s with safe_wcscpy in ↵doshimun2008-05-085-7/+16
| | | | | | | | | | | | | | common/windows/string_utils-inl.h to make the code compatible for teams that still use VS 2003 to build. Fix a bug in client ClientInfo class that returned CustomClientInfo struct containing a pointer in the client process address space instead of pointer to in-process data structure. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@271 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Some style guide compliance changes and changed the prototype of the method ↵doshimun2008-05-074-21/+25
| | | | | | to get custom client info in ClientInfo class. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@270 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Bug fix for issue 263: mach_vm_region_recurse calls have invalid parameter ↵nealsid2008-05-072-5/+4
| | | | | | | | | specified, which succeeds on Leopard but fails on Tiger Reviewer: Chris Rogers(ladderbreaker) git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@269 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add a convenience method to CustomClientInfo struct to set both name and ↵doshimun2008-05-051-0/+5
| | | | | | value in one call. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@268 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add a way for the client apps to specify custom information in case of ↵doshimun2008-05-0510-25/+187
| | | | | | | | | | | | | | 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
* Issue 261/262: 64-bit bug fix when iterating through load commands of a ↵nealsid2008-05-054-140/+21
| | | | | | 64-bit binary, and added new test case for ReadImageInfoForTask git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@266 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Style changesnealsid2008-04-302-4/+3
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@265 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Updated code to be compliant with style guidelinesnealsid2008-04-299-70/+185
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@264 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Issue 258: Added test cases for ReadTaskMemory, reorganized project file, ↵nealsid2008-04-2512-157/+429
| | | | | | renamed filenames inside comments git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@263 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add one more parameter to the ClientDumpRequestCallback in crash generation ↵doshimun2008-04-175-10/+27
| | | | | | | | | | server to pass in the path of the dump file if the dump was generated successfully. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@262 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a bug in start address calculationnealsid2008-04-171-1/+1
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@261 4c0a9323-5329-0410-9bdc-e9ce6186880e
* As part of resolving issue 256 I'd like to check in some unitnealsid2008-04-156-5/+426
| | | | | | | | | | | | | | | | | | | | tests(ok, just one) for the private copy of nlist that I checked in last week, plus lay some of the ground work for collecting code coverage numbers. Both of these are accomplished by leveraging the built-in facilities of Xcode & Developer Tools(namely, CPlusTest and gcov integration; however, eventually I will also add a way to get lcov results from the gcov results). I also: - renamed breakpad_nlist_64.c to breakpad_nlist_64.cc to be more consistent(even though it's not C++ code it still only gets called by C++ code so I don't have to deal with extern "C" constructs). - I created a new target (minidump_tests) that has a "Coverage" configuration with the appropriate GCC flags turned on. It is only compiled in 64-bit configurations and has 10.5 as a minimum deployment target as well as uses the 10.5 SDK. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@260 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Issue 254: The problem is that nlist() is compiled out of libc innealsid2008-04-125-9/+452
| | | | | | | | | | | 64-bit builds of Leopard. I ported the code over myself and will check it into the Breakpad tree until we decide there's a better longer-term solution. If you want to diff the changes, the Apple source is in libc/gen/nlist.c(I used 498 from 10.5.2). git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@259 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add a parameter to CrashGenerationServer to let the callers set thedoshimun2008-04-123-2/+13
| | | | | | | | | | security attributes on the pipe. This is useful when the process hosting the crash server wants to let processes from other users to connect to it and generate dumps for them. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@258 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Some cosmetic/style changes to conform to style guidelines. This timedoshimun2008-04-082-23/+23
| | | | | | | | | 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
* Fix newlines (#253). rs=ted.mielczarekmmentovai2008-04-0729-27796/+27796
| | | | | | | 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
* Processor crashes on some truncated minidumps after #222. r=ted.mielczarekmmentovai2008-04-042-6/+13
| | | | | | | http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/a451668b1ece259f git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@254 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Issue 246: Dynamic_images.* needs to be 64-bit ready. Created types that are ↵nealsid2008-04-045-192/+371
| | | | | | typedefed to the appropriate types depending on 32/64-bit compilation and modified dynamic_images to use these new types. Tested 32-bit minidump-generation. Also did some code cleanup along the way. Removed all blank lines that had spaces. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@253 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Minor style changes to comply with Google style guidelines.doshimun2008-04-034-34/+39
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@252 4c0a9323-5329-0410-9bdc-e9ce6186880e
* issue 223 - Fixes for SOlaris handler during integration with Firefox. patch ↵ted.mielczarek2008-03-1811-334/+687
| | | | | | by Alfred Peng, r=mento,me git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@250 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Issue 245: refactoring minidump_format.h into architecture & platform ↵nealsid2008-03-1710-706/+1321
| | | | | | specific files git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@249 4c0a9323-5329-0410-9bdc-e9ce6186880e
* TO BE REVIEWED.doshimun@gmail.com2008-03-113-4/+15
| | | | | | | | | | | | | | | | | | | | | | | 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
* This changelist contains the changes to the configuration of Visual Studio ↵doshimun@gmail.com2008-03-106-12/+325
| | | | | | | | | | | | | | | | solution and project files that I 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
* Overview:doshimun@gmail.com2008-03-0827-178/+4227
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Use "%" PRIx64 instead of "%llx" for 64-bit portability.bryner2008-03-041-2/+2
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@243 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Don't redefine __STDC_FORMAT_MACROS if it's already defined. r=mmentovai.bryner2008-03-041-0/+2
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@242 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Use "%" PRIx64 instead of "%llx" (#241). r=brynermmentovai2008-02-255-83/+94
| | | | | | | 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