aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Replace MMappedRange with MinidumpMemoryRange.benchan@chromium.org2011-12-214-120/+399
| | | | | | | | | | | | | | | | | | | | | | | This patch is part of a bigger patch that helps merging the breakpad code with the modified version in Chromium OS. The MemoryRange class was added in r895 (http://breakpad.appspot.com/332001), which is largely based on MMappedRange but generalized to be used in other code. However, MemoryRange does not support minidump data structures. This patch adds a MinidumpMemoryRange class that extends MemoryRange to handle minidump data structures, which can then replace MMappedRange. As with MemoryRange, MinidumpMemoryRange is unit tested. BUG=455 TEST=Tested the following: 1. Build on 32-bit and 64-bit Linux with gcc 4.4.3 and gcc 4.6. 2. Build on Mac OS X 10.6.8 with gcc 4.2 and clang 3.0 (with latest gmock). 3. All unit tests pass. 4. Run minidump-2-core to covnert a minidump file to a core file. Review URL: http://breakpad.appspot.com/335001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@898 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
* Replace readlink calls with a safer version that guarantees NULL-termination.benchan@chromium.org2011-12-218-17/+222
| | | | | | | | | | | | | | | | | | | | | This patch is part of a bigger patch that helps merging the breakpad code with the modified version in Chromium OS. Specifically, this patch makes the following changes: 1. Add a SafeReadLink function that wraps sys_readlink() to resolve a symbolic link but guarantees the result is NULL-terminated on success. 2. Refactor other source code to use SafeReadLink instead of readlink() or sys_readlink(). BUG=455 TEST=Tested the following: 1. Build on 32-bit and 64-bit Linux with gcc 4.4.3 and gcc 4.6. 2. Build on Mac OS X 10.6.8 with gcc 4.2 and clang 3.0 (with latest gmock). 3. All unit tests pass. 4. Run minidump-2-core to covnert a minidump file to a core file. Review URL: http://breakpad.appspot.com/334001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@896 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Refactor code in preparation of merging with the fork in Chromium OS.benchan@chromium.org2011-12-1610-55/+781
| | | | | | | | | | | | | | | | | | | | | | This patch is part of a bigger patch that helps merging the breakpad code with the modified version in Chromium OS. Specifically, this patch makes the following changes: 1. Add a MemoryRange class for encapsulating and checking read access to a contiguous range of memory. 2. Add a MemoryMappedFile class for mapping a file into memory for read-only access. 3. Refactor other source code to use MemoryMappedFile. BUG=455 TEST=Tested the following: 1. Build on 32-bit and 64-bit Linux with gcc 4.4.3 and gcc 4.6. 2. Build on Mac OS X 10.6.8 with gcc 4.2 and clang 3.0 (with latest gmock). 3. All unit tests pass. 4. Run minidump-2-core to covnert a minidump file to a core file. Review URL: http://breakpad.appspot.com/332001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@895 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix ContextDeathTest.X86BadFlags unit test on Mac OS X.benchan@chromium.org2011-12-161-1/+1
| | | | | | | | | | | | The assertion (context.context_flags & MD_CONTEXT_X86) in synth_minidump.cc produces a different message on Mac OS X than other platforms. This patch changes the ContextDeathTest.X86BadFlags test to handle both message patterns. BUG=424 TEST=Verified ContextDeathTest.X86BadFlags on Windows, Linux and Mac OS X. Review URL: http://breakpad.appspot.com/333001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@894 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add API on iOS to generate dump on demand.qsr@chromium.org2011-12-092-2/+66
| | | | | | Review URL: http://breakpad.appspot.com/331001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@893 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a missed include path change from r889. (r=qsr in person)stuartmorgan2011-12-021-1/+1
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@892 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Speculative back-out of r883, which may have broken Windows crash reporting.mark@chromium.org2011-11-2813-208/+4
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@891 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix some comments and parameter names.jimblandy2011-11-232-4/+5
| | | | | | | | Trivial changes; committing for post-facto review. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@890 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Create a static library to use Breakpad on iOS.qsr@chromium.org2011-11-239-9/+564
| | | | | | | This obliged me to move BreakpadDefines.h to src/client/apple/Framework/BreakpadDefines.h Review URL: http://breakpad.appspot.com/329001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@889 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Correct compilation warning.qsr@chromium.org2011-11-238-133/+157
| | | | | | | | | 1) Modify src/common/mac/macho_walker.cc to remove a signed vs unsigned comparison. 2) Replace mktemp in test using AutoTmpDir that has been moved from client/mac/tests to common/tests. Review URL: http://breakpad.appspot.com/328001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@888 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Rename md5.c to md5.cc, put its contents inside the google_breakpad namespace.ted.mielczarek2011-11-1810-38/+41
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@887 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Correct bug introduced by last commit: Interface on Breakpad is incorrect.qsr@chromium.org2011-11-162-6/+8
| | | | | | | R=mark@chromium.org git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@886 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add an API to Breakpad to upload custom file to the crash server.qsr@chromium.org2011-11-165-106/+178
| | | | | | | | | | | On iOS, sending logs using the usual breakpad behavior is not possible, because tar is not available. This allow to use Breakpad to send any file to the crash server. R=mark@chromium.org Review URL: http://breakpad.appspot.com/327001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@885 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix several error-case leaks on the Mac found by clang analysisstuartmorgan2011-11-142-2/+8
| | | | | | | Review URL: http://breakpad.appspot.com/325001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@884 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow CrashGenerationClient to request that a dump of the parent process be ↵ted.mielczarek2011-11-1113-4/+208
| | | | | | | | 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
* Correct leak.qsr@chromium.org2011-11-101-2/+2
| | | | | | | Uploaders were never released. Review URL: http://breakpad.appspot.com/326001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@882 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix problem with not NULL terminating mapping name.kmixter@chromium.org2011-11-091-1/+2
| | | | | | | BUG=453 Review URL: http://breakpad.appspot.com/323001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@881 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add mach_vm_deallocate to the set of function not available on iOS5.qsr@chromium.org2011-10-241-0/+1
| | | | | | Review URL: http://breakpad.appspot.com/318003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@880 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Do not use mach_vm.h on iOS.qsr@chromium.org2011-10-245-15/+56
| | | | | | | | | | mach_vm.h has been removed from iOS5. Use #define to use vm_ replacement of mach_vm_ functions on iOS. Do not use mach_vm_allocate -> use a stack variable instead. Review URL: http://breakpad.appspot.com/321001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@879 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Upstream fix for compiling of breakpad with gcc-4.6. Remove an unnecessarymark@chromium.org2011-10-221-1/+1
| | | | | | | | | | | | "const" that causes an error with the newer gcc. BUG=chromium-os:14973 TEST=Built CrOS's google-breakpad Patch by Michael Krebs <mkrebs@chromium.org> git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@878 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix some shadow variables, including one in file_id.cc that causes all files ↵thestig@chromium.org2011-10-206-30/+127
| | | | | | | | to generate the same hash. Add a test to make sure this doesn't happen again. Review URL: http://breakpad.appspot.com/316002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@875 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Correct incorrect bounds checking.qsr@chromium.org2011-10-201-2/+2
| | | | | | Review URL: http://breakpad.appspot.com/319002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@874 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow to retrieve id of a module from memory instead of going to disk for iOS.qsr@chromium.org2011-10-206-31/+102
| | | | | | | | Allow macho_id and macho_walker to read data from memory. Wire up this when reading module on iOS. Review URL: http://breakpad.appspot.com/319001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@873 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix svn:executable and svn:eol-style properties in src/client/windows.mark@chromium.org2011-10-2016-0/+0
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@872 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Changing declaration order of field to correct compilation warnings.qsr@chromium.org2011-10-181-4/+4
| | | | | | Review URL: http://breakpad.appspot.com/316001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@871 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add includes for unittests that appear to need them.jessicag.feedback@gmail.com2011-10-175-4/+26
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@870 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Use frame pointer to walk ARM stack on iOS.qsr@chromium.org2011-10-175-30/+280
| | | | | | Review URL: http://breakpad.appspot.com/314001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@869 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Breakpad implementation for ios.qsr@chromium.org2011-10-123-0/+890
| | | | | | | | | | | | | | To be noted: 1) All is done in process, as multi-process is not allowed on ios. 2) Dump are saved when a crash occures but are not automatically send to the server. 3) Breakpad.h contains function to check if a dump must be uploaded, and to upload a dump. 4) The code is copy pasting a log of Breakpad implementation for Mac OS. It might be possible to do some refactoring. Review URL: http://breakpad.appspot.com/309003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@868 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Handling reading arm executable.qsr@chromium.org2011-10-121-0/+6
| | | | | | | | Because CPU_TYPE_ARM is not defined on Mac OSX 10.4, I have to redefine the variable to the correct value. Review URL: http://breakpad.appspot.com/310004 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@867 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Minor formatting fix following r865.mark@chromium.org2011-10-111-2/+2
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@866 4c0a9323-5329-0410-9bdc-e9ce6186880e
* More fixes following r862.mark@chromium.org2011-10-111-6/+6
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@865 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Additional fixes following r862.mark@chromium.org2011-10-112-31/+34
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@864 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove "using namespace std" from dwarf2reader.h. Using-directives aremark@chromium.org2011-10-115-40/+41
| | | | | | | | | | | | | forbidden by the style guide, and are bad practice in headers even under style rules that tolerate this construct. This fixes warnings such as: In file included from dwarf2reader.cc:34: dwarf2reader.h:53:17: warning: using namespace directive in global context in header [-Wheader-hygiene] Review URL: http://breakpad.appspot.com/312002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@862 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix harmless warning in dwarf_cfi_to_module.cc.mark@chromium.org2011-10-111-1/+1
| | | | | | | | | | | | | | | | | This function already establishes that (signed) i must be positive by the time it assigns it to (unsigned) reg. Because reg is unsigned, it is impossible for it to be negative. Because i was already checked for positivity, this check can be removed entirely. It was not a miswritten check that intended to check i instead of reg, because i is already checked. This addresses the following warning: dwarf_cfi_to_module.cc:135:9: warning: comparison of 0 <= unsigned expression is always true [-Wtautological-compare] Committed r859 Review URL: http://breakpad.appspot.com/310003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@861 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix harmless printf abuse in symupload.mark@chromium.org2011-10-111-1/+2
| | | | | | | | | | | | | | | | symupload printed -[NSData length], an NSUInteger, using %lu. %lu is proper to print a "long" as unsigned, but NSUInteger is a typedef for "unsigned int" when building for 32-bit. This would not have caused any problems, because in the 32-bit model, both int and long are 32 bits wide. In the 64-bit model, long is 64 bits wide, but NSUInteger is defiend as "unsigned long", so there wouldn't have even been a warning in that case. This addresses the following warning: symupload.m:137:30:{137:28-137:31}{137:46-137:59}: warning: conversion specifies type 'unsigned long' but the argument has type 'NSUInteger' (aka 'unsigned int') [-Wformat] Review URL: http://breakpad.appspot.com/313002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@860 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove duplicate definition of GTMLoggerDebug.mark@chromium.org2011-10-111-3/+0
| | | | | | | | | | | | The actual defintion comes from common/mac/GTMLogger.h, #imported above. This removes a compilation warning that showed up in r853: uploader.m:52:9: warning: 'GTMLoggerDebug' macro redefined GTMLogger.h:339:9: note: previous definition is here Review URL: http://breakpad.appspot.com/310002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@859 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Adding missing method.qsr@chromium.org2011-10-111-0/+5
| | | | | | | parameters method was missing on Uploader. Review URL: http://breakpad.appspot.com/312001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@858 4c0a9323-5329-0410-9bdc-e9ce6186880e
* #include BreakpadDefines.h as "BreakpadDefines.h" and notmark@chromium.org2011-10-111-1/+1
| | | | | | | | | | | | | | | | <Breakpad/BreakpadDefines.h>. During the build of Breakpad itself (especially in Chromium), there is no Breakpad.framework/Headers in which to locate BreakpadDefines.h, so the framework-style #include of <Breakpad/BreakpadDefines.h> is not able to find anything to #include. Using the "BreakpadDefines.h" form should always locate this file next to Breakpad.h whether it's in the framework or in the source tree. This fixes a Chromium build regression caused by Breakpad r856. Review URL: http://breakpad.appspot.com/313001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@857 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Extract constants from Breakpad.h.qsr@chromium.org2011-10-119-65/+98
| | | | | | | This is done to allow ios implementation to use the same constants. Review URL: http://breakpad.appspot.com/311001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@856 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Handle ios dump.qsr@chromium.org2011-10-115-1/+18
| | | | | | | | | | This change add a flag for ios minidumps and allow handler to recognize it. It doesn't recognize arm specific exceptions that will be logged as unknown type. Review URL: http://breakpad.appspot.com/311002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@855 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Use right header.qsr@chromium.org2011-10-101-1/+1
| | | | | | | Code was pulling Cocoa dependency, when Foundation is enough. Review URL: http://breakpad.appspot.com/310001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@854 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Extract the uploader process from crash_report_senderqsr@chromium.org2011-10-105-570/+695
| | | | | | | | The aim is to separate the process itself from the view, to be able to reuse the process on the iOS platform. Review URL: http://breakpad.appspot.com/309002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@853 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Extracting the config file class from the Inspector to be able to reuse it.qsr@chromium.org2011-10-107-227/+328
| | | | | | | | | This will be needed for iOS implementation, where the Inspector won't be used, but where a config file will still be needed, because the uploads won't happen just after the crash, but on a next run. Review URL: http://breakpad.appspot.com/309001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@852 4c0a9323-5329-0410-9bdc-e9ce6186880e
* #ifdef cpu specific code.qsr@chromium.org2011-10-076-9/+160
| | | | | | Review URL: http://breakpad.appspot.com/307002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@848 4c0a9323-5329-0410-9bdc-e9ce6186880e
* 10.4 SDK fixmark@chromium.org2011-10-063-1/+21
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@847 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Adding svn:ignore properties for .deps and .dirstampqsr@chromium.org2011-10-061-0/+0
| | | | | | | | | Remove spurious .distamp from the repository. LGTM from stuartmorgan. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@845 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Address review comments from r843 (http://breakpad.appspot.com/307001)mark@chromium.org2011-10-054-15/+25
| | | | | | Review URL: http://breakpad.appspot.com/308001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@844 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Ensure crash reports will be uploaded on the Mac.mark@chromium.org2011-10-053-2/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Regression from Breakpad r842 (Chromium r103778) - browser crash reports were uploaded, but renderer crash reports were not. Messages such as these may have been logged: com.apple.launchd.peruser.x[y] could not lookup DNS configuration info service: (ipc/send) invalid destination port com.apple.launchd.peruser.x[y] Breakpad Reporter: Send Error: Error Domain=NSURLErrorDomain Code=-1009 UserInfo=z "This computer’s Internet connection appears to be offline." Underlying Error=(Error Domain=kCFErrorDomainCFNetwork Code=-1009 UserInfo=w "This computer’s Internet connection appears to be offline.") When OnDemandServer establishes the bootstrap subset, it will now register the parent bootstrap port in the subset namespace so that the Inspector can recover this port and switch to it. The Sender, launched by the Inspector, relies on the bootstrap port being set properly. BUG=chromium:99252 TEST=All test cases from Chromium r103778 (bug chromium:28547) plus: about:crash should generate a crash report which should be uploaded, provided that throttling is not in effect. Remove or edit ~/Library/Preferences/com.Breakpad.crash_report_sender.plist to defeat throttling. Also verify that about:inducebrowsercrashforrealz works. Review URL: http://breakpad.appspot.com/307001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@843 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Use a bootstrap subset port for the inspector, tying the subset to themark@chromium.org2011-10-031-10/+26
| | | | | | | | | | | | | | | lifetime of the task to be monitored, the invoking task. This allows the bootstrap server (in launchd) to automatically clean up the Mach server registration when the task being monitored exits, avoiding leaks of com.Breakpad.Inspector(pid) ports in "launchctl bslist". BUG=chromium:28547 TEST=Handler should still crash catches, but inspector ports should no longer show up in "launchctl bslist". They should show up under a subset port in "launchctl bstree" instead. "launchctl bstree" must be invoked as root. Review URL: http://breakpad.appspot.com/306001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@842 4c0a9323-5329-0410-9bdc-e9ce6186880e