aboutsummaryrefslogtreecommitdiff
path: root/src/client
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove 1 static initializer.mark@chromium.org2012-07-021-1/+0
| | | | | | | | | Patch by Nico Weber <thakis@chromium.org> Review URL: https://breakpad.appspot.com/409002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@976 4c0a9323-5329-0410-9bdc-e9ce6186880e
* This change allows compiling the google-breakpad code using a global ↵ivan.penkov@gmail.com2012-06-2810-39/+47
| | | | | | ::string class instead of std::string. For more details take a look at common/using_std_string.h git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@974 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix Android build of client librarydigit@chromium.org2012-06-272-32/+7
| | | | | | | | http://breakpad.appspot.com/401002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@973 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a race condition in AutoCriticalSection.thestig@chromium.org2012-06-191-1/+1
| | | | | | | CID=104232 Review URL: https://breakpad.appspot.com/398002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@972 4c0a9323-5329-0410-9bdc-e9ce6186880e
* CrashGenerationServer's state machine can be invoked from both the applicationmark@chromium.org2012-06-123-50/+76
| | | | | | | | | | | | | | | | thread and thread pool threads. This CL serializes access to the FSM state. Handling of crash dump and client shutdown requests is still done asynchronously. Patch by Alex Pakhunov <alexeypa@chromium.org> BUG=132164 TEST=remoting_unittests.BreakpadWinDeathTest.* Review URL: https://breakpad.appspot.com/396002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@970 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix uploader so that it send the guid to the server.qsr@chromium.org2012-06-061-0/+1
| | | | | | Review URL: https://breakpad.appspot.com/391002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@969 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Initialize a CustomClientInfo variable. (Coverity)thestig@chromium.org2012-05-151-1/+1
| | | | | | Review URL: https://breakpad.appspot.com/390003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@967 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Increase kMinidumpFileLengthLimit from 800000 to 2MB.mark@chromium.org2012-05-151-1/+1
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@966 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Unprotect the allocator before trying to create a minidump from a signal.qsr@chromium.org2012-05-141-5/+13
| | | | | | | | | It is impossible to write a minidump with memory protected. This means that before this change, no minidump were created when a signal was caught, instead the application froze. Review URL: https://breakpad.appspot.com/389002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@964 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Bits necessary to send the reports along with the minidumps.mark@chromium.org2012-05-111-5/+10
| | | | | | | | | | | | | | | | Currently the log file and the minidump are uploaded in two consequent requests, thus they get different report ids and it's hard to associate them to each other. This CL makes the crash uploader send the minidump and the log file together in a single multipart request, so that they have the same report id and are accessible from the same landing page. Patch by Alexander Potapenko <glider@chromium.org> Review URL: https://breakpad.appspot.com/387003/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@963 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix warning in r961 - C4800jessicag.feedback2012-05-071-1/+1
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@962 4c0a9323-5329-0410-9bdc-e9ce6186880e
* wires up the crash client side so that the deferred upload callback can be used.cdn@chromium.org2012-05-035-4/+33
| | | | | | | 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
* Fix race in VerifyStackReadWithMultipleThreadsted.mielczarek2012-04-252-20/+29
| | | | | | | Patch by Chris Dearman <chris@mips.com> R=ted at http://breakpad.appspot.com/377002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@959 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix compilation warnings related to unchecked return valuested.mielczarek2012-04-253-28/+43
| | | | | | | Patch by Chris Dearman <chris@mips.com> R=benchan at http://breakpad.appspot.com/377001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@957 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Reap child in VerifyStackReadWithMultipleThreadsted.mielczarek2012-04-251-0/+7
| | | | | | | Patch by Chris Dearman <chris@mips.com> R=benchan at http://breakpad.appspot.com/378001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@956 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix file descriptor leak in GetThreadInfoByIndexbenchan@chromium.org2012-04-181-0/+1
| | | | | | | Patch by Chris Dearman <chris@mips.com> Review URL: http://breakpad.appspot.com/376001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@954 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Set limit on the number of custom client info entries that can be sent with ↵cdn@chromium.org2012-04-171-0/+4
| | | | | | | | | | a crash dump. BUG=123709 TEST=N/A Review URL: https://breakpad.appspot.com/377004 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@953 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Expose a callback to allow crash server implementations to defer the ↵cdn@chromium.org2012-04-1310-22/+69
| | | | | | | | | | uploading of crash dumps to a later time. The client can provide a crash_id when the dump is performed and then at a later time connect again and request that the crash id be uploaded triggering an implementation defined callback. BUG=473 TEST=CrashGenerationServerTest.* Review URL: https://breakpad.appspot.com/379001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@952 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix file descriptor leaks in ExternalDumper testted.mielczarek2012-04-111-0/+2
| | | | | | | Patch by Chris Dearman <chris@mips.com> R=ted at http://breakpad.appspot.com/372002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@951 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fixed "unused method" warning, reported by Xcode 4.2 on simulator.qsr@chromium.org2012-04-041-0/+2
| | | | | | | Patch by tball@google.com Review URL: https://breakpad.appspot.com/371002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@948 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Changes to get the breakpad client compiling and running on Android usingmark@chromium.org2012-04-036-28/+132
| | | | | | | | | | | ndk-7b. Patch by Carlos Valdivia <carlosvaldivia@google.com> Review URL: https://breakpad.appspot.com/363001/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@945 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove redundant include of CPP specific header filested.mielczarek@gmail.com2012-04-031-2/+0
| | | | | | | Patch by Chris Dearman <chris@mips.com> R=ted at http://breakpad.appspot.com/372001/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@944 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix several issues in linux_dumper_unittest_helperted.mielczarek@gmail.com2012-04-031-3/+6
| | | | | | | Patch by Chris Dearman <chris@mips.com> R=ted at http://breakpad.appspot.com/369001/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@943 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix for putting main module as first one in minidumpmkrebs@chromium.org2012-03-302-3/+53
| | | | | | | | | | | | | | The first module in a minidump is expected to be for the main executable. We used to assume that /proc/<pid>/maps always showed that one first, but in some cases that is no longer true (see comment #7 of the bug). So this change makes use of the entry point stored in auxv to make sure we put the correct module first. BUG=chromium-os:25355 TEST=Ran Breakpad tests Review URL: https://breakpad.appspot.com/366002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@942 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix one more -Wnull-conversion warning.mark@chromium.org2012-03-301-1/+2
| | | | | | | | | Patch by Nico Weber <thakis@chromium.org> Review URL: https://breakpad.appspot.com/370001/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@939 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix -Wnull-conversion warnings in breakpad.mark@chromium.org2012-03-302-2/+2
| | | | | | | | | Patch by Nico Weber <thakis@chromium.org> Review URL: https://breakpad.appspot.com/367001/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@938 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Unregister waits when a client shuts down so that no further callback events cancdn@chromium.org2012-03-221-0/+1
| | | | | | | | | | fire for that client. BUG=117890 TEST=N/A Review URL: https://breakpad.appspot.com/365001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@936 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add high level API for breakpad on iOS.qsr@chromium.org2012-03-135-8/+391
| | | | | | | | | | | The new API allows to automatically upload repports to the crash server when the application restarts. This change also: - Correct a bug on the test for correct alignment of the abrt signal handler - Add user friendly information on crashes for SIGABRT and NSException Review URL: https://breakpad.appspot.com/361001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@935 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Change iOS implementation to not use exc_serverqsr@chromium.org2012-03-091-86/+89
| | | | | | | | | | | Instead of using exc_server, the message is parsed directly, and the minidump is created, then the app is killed. Moreover, the only catch exception is exception_raise. This patch remove all rereference to exception_raise_state and exception_raise_state_identity. Review URL: https://breakpad.appspot.com/358001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@934 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add SIGABRT handler for mac and iOS.qsr@chromium.org2012-03-093-10/+90
| | | | | | | | SIGABRT were not handled while in process. This change add a signal handler to handle this. Review URL: https://breakpad.appspot.com/360001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@933 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Removing breakpad_exc_server and all references.qsr@chromium.org2012-03-083-2085/+2
| | | | | | | This was aimed at replacing exc_server, but was not used. Review URL: https://breakpad.appspot.com/357001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@930 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Correct various compilation warnings.qsr@chromium.org2012-03-073-16/+17
| | | | | | | | | | - Cast result of _dyld_image_count to prevent compilation warning: The 2 int in both side of the ? operator should have the same type. - Remove unused variable for return values. - Remove unused NSUserDefaults. Review URL: https://breakpad.appspot.com/354001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@929 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Send uptime as milliseconds for Mac and iOS.qsr@chromium.org2012-03-023-11/+17
| | | | | | | | All other platform are sending uptime as milliseconds. Changing the implementation to do the same on Mac and iOS. Review URL: https://breakpad.appspot.com/355001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@928 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Modify CrashGenerator::CreateChildCrash to copy proc files.benchan@chromium.org2012-02-231-13/+5
| | | | | | | | | | | | | | | | | | | | | This patch is taken from the downstream version of breakpad in Chromium OS: https://gerrit.chromium.org/gerrit/15148 LinuxCoreDumperTest previously assumes the proc files of the child process created by CrashGenerator::CreateChildCrash() have the same content as its parent process, which may not be true. This CL modifies CrashGenerator to copy the proc files of the child process, created by CreateChildCrash(), before crashing that process. BUG=chromium-os:25252 TEST=Verified the following: 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. Review URL: https://breakpad.appspot.com/353001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@925 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move away from the 10.4 SDK.mark@chromium.org2012-02-211-3/+0
| | | | | | Review URL: https://breakpad.appspot.com/351001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@922 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Funnel all bootstrap_register calls through a routine that doesn't care thatmark@chromium.org2012-02-213-9/+29
| | | | | | | | | it's deprecated. Apple marked bootstrap_register as deprecated on 10.5 but it's actually still needed on that OS release. There isn't a way to get the functionality Breakpad needs from it without calling it until 10.6. Review URL: https://breakpad.appspot.com/350001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@921 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Avoid setting an alternative stack for signals if there is already oneted.mielczarek2012-02-142-8/+11
| | | | | | | P=Mike Hommey <mh@glandium.org> R=ted at http://codereview.appspot.com/5573054/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@918 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add missing include.qsr@chromium.org2012-02-141-0/+1
| | | | | | | As the include define some method to be inlined, not having the include breaks the compilation of optimized builds. Review URL: https://breakpad.appspot.com/347002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@917 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Creating minidump for uncaught exception on iOS.qsr@chromium.org2012-02-145-7/+312
| | | | | | | | | | | This CL adds a minidump_generator that can write a minidump from a NSException on iOS on an ARM cpu. This CL also install an uncaught exception handler on iOS, and use the previous generator to write minidumps for any uncaught exception. Review URL: https://breakpad.appspot.com/347001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@916 4c0a9323-5329-0410-9bdc-e9ce6186880e
* createDirectoryAtPath:attributes: is deprecated, use the suggested (10.5+)mark@chromium.org2012-02-091-45/+4
| | | | | | | | | | | replacement. Patch by Nico Weber <thakis@chromium.org> Review URL: https://breakpad.appspot.com/349001/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@915 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix clang warning about format string.mark@chromium.org2012-02-091-1/+1
| | | | | | | | | Patch by Nico Weber <thakis@chromium.org>. Review URL: https://breakpad.appspot.com/348001/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@914 4c0a9323-5329-0410-9bdc-e9ce6186880e
* NXSwapBigIntToHost is deprecated, use CFSwapInt32BigToHost instead.mark@chromium.org2012-02-061-8/+9
| | | | | | | Patch by Nico Weber <thakis@chromium.org> git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@913 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix test addresses to use uintptr_t instead of u_int64_t.benchan@chromium.org2012-01-273-4/+4
| | | | | | | | | | | | | | | | When a variable is used to set (and lookup) MappingInfo's "start_addr" field, it needs to match types -- which is "uintptr_t". When Chrome OS updated the 'make' that's used for building, the 32-bit "char *" had sign-extended when cast up to a u_int64_t -- maybe because pointers were unsigned before and then changed to be signed -- and that caused the address lookup to fail. BUG=chromium-os:25355 TEST=Ran Breakpad unittests A=mkrebs@chromium.org Review URL: http://breakpad.appspot.com/345001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@908 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix several clang warnings in breakpad.mark@chromium.org2012-01-262-4/+4
| | | | | | | | | | | | | | | | | | uploader.mm:549:5: warning: instance method '-uploadData:name:url:' not found (return type defaults to 'id') [self uploadData:logFileData_ name:@"log" url:url]; => it looks like this method does in fact not exist, the last parameter needs to be removed. breakpad_nlist_64.cc:193:59: warning: '&&' within '||' [-Wlogical-op-parentheses] => Just add parentheses, no functionality change. Patch by Nico Weber <thakis@chromium.org> BUG=none TEST=breakpad stil works. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@907 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Use sys_prctl instead of prctl.thestig@chromium.org2012-01-241-8/+5
| | | | | | | http://breakpad.appspot.com/339002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@906 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Implement core dump to minidump conversion.benchan@chromium.org2012-01-1910-356/+1005
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Turn the LinuxDumper class into a base class and move ptrace related code into a new derived class, LinuxPtraceDumper. 2. Add a LinuxCoreDumper class, which is derived from LinuxDumper, to extract information from a crashed process via a core dump file instead of ptrace. 3. Add a WriteMinidumpFromCore function to src/client/linux/minidump_writer/minidump_writer.h, which uses LinuxCoreDumper to extract information from a core dump file. 4. Add a core2md utility, which simply wraps WriteMinidumpFromCore, for converting a core dump to a minidump. 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 Chromium OS tests to test core2md. Review URL: http://breakpad.appspot.com/343001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@905 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Refactor LinuxDumper and MinidumpWriter.benchan@chromium.org2012-01-114-88/+128
| | | | | | | | | | | | | | | | | | | | | | | 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 two convenient methods, back() and empty(), to the wasteful_vector class. 2. Refactor the LinuxDumper class such that it can later be splitted into a base class and two derived classes, one uses the current ptrace implementation and one uses a core file. 3. Refactor the MinidumpWriter class such that it can later use different derived implementations of LinuxDumper. 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. Review URL: http://breakpad.appspot.com/340001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@902 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Send crash dumps to Google via HTTPS instead of HTTP, since they mightthestig@chromium.org2012-01-041-1/+1
| | | | | | | | | | | | | contain sensitive information. BUG=none TEST=crash dumps still arrive A=palmer@chromium.org Original code review: http://breakpad.appspot.com/338001 Review URL: http://breakpad.appspot.com/334002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@899 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-214-14/+12
| | | | | | | | | | | | | | | | | | | | | 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