Commit graph

168 commits

Author SHA1 Message Date
rsesek@chromium.org
30bb1ab601 Move SimpleStringDictionary from common/mac/ to just common/.
This also cleans up some things like the file name, trailing whitespace,
and making the test use gtest instead of sentest, since there's nothing
Mac specific about this.

BUG=https://code.google.com/p/chromium/issues/detail?id=77656

Review URL: https://breakpad.appspot.com/561003

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1154 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-04-18 20:17:29 +00:00
ted.mielczarek@gmail.com
32ce6dea51 Fix missing result check in Mac exception handler
Patch by Georg Fritzsche <georg.fritzsche@googlemail.com>, R=ted at https://breakpad.appspot.com/554003/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1152 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-04-18 12:47:08 +00:00
ted.mielczarek@gmail.com
7546209ddd Make OOP mac crashreporting exit after writing dump
R=mark at https://breakpad.appspot.com/538002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1127 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-03-06 20:14:32 +00:00
ted.mielczarek@gmail.com
aeffe1056f Use stdint types everywhere
R=mark at https://breakpad.appspot.com/535002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1121 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-03-06 14:04:42 +00:00
ted.mielczarek@gmail.com
63c5d98003 Move scoped_ptr.h to common
R=mark at https://breakpad.appspot.com/509002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1096 4c0a9323-5329-0410-9bdc-e9ce6186880e
2013-01-17 15:53:56 +00:00
mark@chromium.org
d4df92aedc Allow the Mac and iOS Breakpad clients to build without exceptions when the C++ standard library is not provided by libstdc++. libc++, for example, does
not provide its own try and catch replacement macros when exceptions are
disabled.

BUG=509
Review URL: https://breakpad.appspot.com/503002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1089 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-12-11 13:46:41 +00:00
mark@chromium.org
bf6d350a68 Explicitly include unistd.h for getpagesize().
Patch by Nico Weber <thakis@chromium.org>

Review URL: https://breakpad.appspot.com/502002/


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1087 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-12-07 21:31:00 +00:00
qsr@chromium.org
872d464500 Update dump_syms to correctly filter on cpu subtype.
Right now, if an archive contain multiple executable for the same CPU but with different subtype, there is no way to dump any but the first one.
Review URL: https://breakpad.appspot.com/476002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1061 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-10-04 13:26:47 +00:00
kenbongort@gmail.com
75f6a6bf95 Fix an analyzer warning due to value assigned but not used.
http://breakpad.appspot.com/473002/


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1058 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-10-03 17:03:49 +00:00
qsr@chromium.org
9b6b41b8ca Add custom implementation of NXGetArchInfoXXX to allow adding new arch.
NXGetArchInfoXXX depends on the OS knowledge of architecture. This CL adds a
custom implementation of those methods to be able to handle newer CPU before
they are handled by the OS. It also add handling for armv7s architecture.
Review URL: https://breakpad.appspot.com/475002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1057 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-10-03 16:20:53 +00:00
thestig@chromium.org
d053a94be8 Fix a bunch of small nits.
Review URL: https://breakpad.appspot.com/463004

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1051 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-09-26 18:59:06 +00:00
qsr@chromium.org
f1489baeb7 Turn on more warnings in ios / mac projects.
Make casts explicit.
  This makes casts that loose precision explicit, from here on we will get
warnings.
  The changes in this commit are made without evaluating each cast, asuming the
original casts were intentional.

Patch by: jakerr@google.com
Review: https://breakpad.appspot.com/453002/



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1046 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-09-21 07:58:25 +00:00
ted.mielczarek@gmail.com
52935b4e81 Add a GetInstructionPointer method to MinidumpException
R=mark at https://breakpad.appspot.com/444003/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1039 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-09-17 14:01:28 +00:00
qsr@chromium.org
5f57e963d0 Getting context information from the kernel when catching a SIGABRT on iOS.
Until now, the context information was the current one when receiving a
SIGABRT. This is mainly wrong because the signal handler start in a new
context. This instead use the context passed to the signal handler.
Review URL: https://breakpad.appspot.com/435002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1015 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-08-20 13:42:09 +00:00
mark@chromium.org
5d8db68b51 Ignore -Wdeprecated-declarations for bootstrap_create_service in
OnDemandServer.mm.

BUG=crbug.com/137676
TEST=compiles

Patch by Robert Sesek <rsesek@chromium.org>
Review URL: https://breakpad.appspot.com/419002/


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@993 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-07-23 19:09:25 +00:00
ted.mielczarek
b6b4451142 Add a filter callback to CrashGenerationServer on mac
A=Rafael Ávila de Espíndola <respindola@mozilla.com> R=ted at https://bugzilla.mozilla.org/show_bug.cgi?id=732173

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@990 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-07-20 12:24:25 +00:00
qsr@chromium.org
47e34e6f07 Fix compilation for iOS on XCode 4.5
Compilation directive for PPC was using MAC_OS_X_VERSION_MIN_REQUIRED.

 This is not correct, as the latest SDKs allow to compile for older version of
Mac OS, but don't contain the ppc headers. Changing the directive to use
MAC_OS_X_VERSION_MAX_ALLOWED instead.

 Moreover, uploader.mm was including pwd.h that was not used and doesn't exist
on the latest iOS SDK.
Review URL: https://breakpad.appspot.com/412002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@982 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-07-09 12:38:15 +00:00
mark@chromium.org
eb3bf49197 Change #imports that should have been #includes to #include.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@977 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-07-02 15:34:15 +00:00
mark@chromium.org
0866e8254d Remove 1 static initializer.
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
2012-07-02 15:33:37 +00:00
qsr@chromium.org
fd67ff286e Fix uploader so that it send the guid to the server.
Review URL: https://breakpad.appspot.com/391002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@969 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-06-06 08:02:48 +00:00
mark@chromium.org
df8d4f964f Increase kMinidumpFileLengthLimit from 800000 to 2MB.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@966 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-05-15 22:30:15 +00:00
qsr@chromium.org
bbc3789df1 Unprotect the allocator before trying to create a minidump from a signal.
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
2012-05-14 11:34:01 +00:00
mark@chromium.org
05d61dfd83 Bits necessary to send the reports along with the minidumps.
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
2012-05-11 14:12:43 +00:00
mark@chromium.org
f6147a6460 Fix one more -Wnull-conversion warning.
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
2012-03-30 20:36:32 +00:00
mark@chromium.org
07b3445bf1 Fix -Wnull-conversion warnings in breakpad.
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
2012-03-30 14:30:06 +00:00
qsr@chromium.org
1e8d2d5a4c Add high level API for breakpad on iOS.
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
2012-03-13 20:02:40 +00:00
qsr@chromium.org
7facb6a6fb Change iOS implementation to not use exc_server
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
2012-03-09 19:22:10 +00:00
qsr@chromium.org
b1f858f26b Add SIGABRT handler for mac and iOS.
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
2012-03-09 19:11:58 +00:00
qsr@chromium.org
76acc0edcd Removing breakpad_exc_server and all references.
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
2012-03-08 00:02:58 +00:00
qsr@chromium.org
af7d5ccf7b Correct various compilation warnings.
- 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
2012-03-07 00:18:29 +00:00
qsr@chromium.org
04548babac Send uptime as milliseconds for Mac and iOS.
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
2012-03-02 08:27:20 +00:00
mark@chromium.org
80bcce941e Move away from the 10.4 SDK.
Review URL: https://breakpad.appspot.com/351001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@922 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-02-21 21:33:09 +00:00
mark@chromium.org
6fbc102794 Funnel all bootstrap_register calls through a routine that doesn't care that
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
2012-02-21 21:24:43 +00:00
qsr@chromium.org
5d7f694f27 Creating minidump for uncaught exception on iOS.
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
2012-02-14 08:46:26 +00:00
mark@chromium.org
8e3dcd5a02 createDirectoryAtPath:attributes: is deprecated, use the suggested (10.5+)
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
2012-02-09 20:31:08 +00:00
mark@chromium.org
a4c66ebff5 Fix clang warning about format string.
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
2012-02-09 20:30:31 +00:00
mark@chromium.org
3aa10d2a87 NXSwapBigIntToHost is deprecated, use CFSwapInt32BigToHost instead.
Patch by Nico Weber <thakis@chromium.org>


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@913 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-02-06 17:33:12 +00:00
mark@chromium.org
1197f761a4 Fix several clang warnings in breakpad.
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
2012-01-26 19:05:31 +00:00
qsr@chromium.org
e6a2f54c4d Create a static library to use Breakpad on iOS.
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
2011-11-23 16:14:35 +00:00
qsr@chromium.org
bad70be095 Correct compilation warning.
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
2011-11-23 14:22:05 +00:00
ted.mielczarek
84571a2b91 Rename md5.c to md5.cc, put its contents inside the google_breakpad namespace.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@887 4c0a9323-5329-0410-9bdc-e9ce6186880e
2011-11-18 21:40:27 +00:00
qsr@chromium.org
976930db64 Add an API to Breakpad to upload custom file to the crash server.
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
2011-11-16 17:04:28 +00:00
stuartmorgan
b2196565bd Fix several error-case leaks on the Mac found by clang analysis
Review URL: http://breakpad.appspot.com/325001


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@884 4c0a9323-5329-0410-9bdc-e9ce6186880e
2011-11-14 13:16:19 +00:00
qsr@chromium.org
ec24b1b19e Add mach_vm_deallocate to the set of function not available on iOS5.
Review URL: http://breakpad.appspot.com/318003

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@880 4c0a9323-5329-0410-9bdc-e9ce6186880e
2011-10-24 15:16:10 +00:00
qsr@chromium.org
09de69eca1 Do not use mach_vm.h on iOS.
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
2011-10-24 14:58:12 +00:00
qsr@chromium.org
446616ee22 Allow to retrieve id of a module from memory instead of going to disk for iOS.
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
2011-10-20 15:22:48 +00:00
qsr@chromium.org
375928a0a6 Breakpad implementation for ios.
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
2011-10-12 14:00:19 +00:00
mark@chromium.org
6669714772 Remove duplicate definition of GTMLoggerDebug.
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
2011-10-11 17:37:32 +00:00
qsr@chromium.org
f53e77c011 Adding missing method.
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
2011-10-11 16:55:19 +00:00
mark@chromium.org
3473acb12e #include BreakpadDefines.h as "BreakpadDefines.h" and not
<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
2011-10-11 16:47:47 +00:00