aboutsummaryrefslogtreecommitdiff
path: root/src/client/mac/Framework
Commit message (Collapse)AuthorAgeFilesLines
* fix pointer style to match the style guideMike Frysinger2020-07-154-125/+125
| | | | | | | | | | We do this in a lot of places, but we're inconsistent. Normalize the code to the Google C++ style guide. Change-Id: Ic2aceab661ce8f6b993dda21b1cdf5d2198dcbbf Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2262932 Reviewed-by: Sterling Augustine <saugustine@google.com> Reviewed-by: Mark Mentovai <mark@chromium.org>
* breakpad: Remove semicolons, mac edition.Nico Weber2019-02-223-3/+3
| | | | | | | Bug: chromium:926235 Change-Id: I473a7727c1831717b92a582c50d98256ea41d854 Reviewed-on: https://chromium-review.googlesource.com/c/1482716 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Breakpad: Fix build with new clang versions.mark@chromium.org2014-12-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc has a single exception setting for all languages. Saying -fno-exceptions in gcc disables exceptions and cleanups for cc files, but has no effect for mm files. In clang, -fno-exceptions only disables c++ exceptions, but keeps objective-c exceptions and cleanups enabled. http://llvm.org/viewvc/llvm-project?view=revision&revision=220714 changed __EXCEPTIONS to be defined for clang when cleanups are enabled, independent of if c++ exceptions are enabled. (This was necessary to have clang work with glibc which looks at __EXCEPTIONS to decide if cleanups are enabled.) Breakpad tried to use __EXCEPTIONS to figure out if c++ exceptions are enabled. In cc files, this works: -fno-exceptions will disable c++ exceptions and cleanups. But in mm files, -fno-exceptions will disable c++ exceptions and objective-c exceptions will still be enabled, and so cleanups must run and hence __EXCEPTIONS is defined. To make things work with both old and new compilers, do the try/catch hack in mm files either if __EXCEPTIONS is not defined (for old compilers) or if the compiler is clang and __has_feature(cxx_exceptions) isn't set (which will work for new clangs too, and which cleanly maps to if c++ exceptions are enabled). Patch by Nico Weber <thakis@chromium.org> Review URL: https://breakpad.appspot.com/1774002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1409 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Mac: Add support for in-process crash reporting to Breakpad.andresantoso@chromium.org2014-09-152-0/+63
| | | | | | | | | | | | | | | Add new option BREAKPAD_IN_PROCESS. If YES, Breakpad will write the dump file in-process and then launch the reporter executable as a child process. Originally reviewed at https://codereview.chromium.org/571523004/ BUG=chromium:414239 R=mark@chromium.org Review URL: https://breakpad.appspot.com/1714002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1375 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fixup breakpad compile for Xcode 5.1 iOS releasedmaclach2014-02-241-2/+2
| | | | | | | | (https://breakpad.appspot.com/1154002/) git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1282 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Don't do work inside assert(). Ever.mark@chromium.org2014-01-101-16/+13
| | | | | | | | | | | | | | | The Mac crash key manipulation code was intended to be thread-safe through the provision of a mutex. The mutex operations were done inside an assert(). assert() is a no-op in NDEBUG (release) builds. Therefore, in release builds, these operations were occurring without being protected by any mutex at all, and were nowhere near thread-safe. BUG=chromium:331268 R=rsesek@chromium.org Review URL: https://breakpad.appspot.com/1034002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1270 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove usage of gDebugLog and DEBUGLOG from Mac and iOS client code.altse@chromium.org2013-12-121-18/+0
| | | | | | | | | | The inconsistent and duplicated references to gDebugLog caused problems building on iOS and the current logging implementation had little utility because it was never activated in debug builds. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1257 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Rewrite SimpleStringDictionary with NonAllocatingMap.rsesek@chromium.org2013-04-241-4/+2
| | | | | | | | | | | NonAllocatingMap has a near-identical interface, but is significantly less code, more customizable, and has storage that is POD. BUG=http://code.google.com/p/chromium/issues/detail?id=77656 Review URL: https://breakpad.appspot.com/568002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1161 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move SimpleStringDictionary from common/mac/ to just common/.rsesek@chromium.org2013-04-181-1/+1
| | | | | | | | | | | | 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
* Allow the Mac and iOS Breakpad clients to build without exceptions when the ↵mark@chromium.org2012-12-111-2/+15
| | | | | | | | | | | | 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
* Ignore -Wdeprecated-declarations for bootstrap_create_service inmark@chromium.org2012-07-231-0/+3
| | | | | | | | | | | | | 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
* Change #imports that should have been #includes to #include.mark@chromium.org2012-07-021-6/+6
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@977 4c0a9323-5329-0410-9bdc-e9ce6186880e
* 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
* Send uptime as milliseconds for Mac and iOS.qsr@chromium.org2012-03-021-5/+7
| | | | | | | | 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
* Funnel all bootstrap_register calls through a routine that doesn't care thatmark@chromium.org2012-02-211-6/+9
| | | | | | | | | 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
* Create a static library to use Breakpad on iOS.qsr@chromium.org2011-11-232-73/+1
| | | | | | | 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
* #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-113-56/+85
| | | | | | | 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
* 10.4 SDK fixmark@chromium.org2011-10-061-0/+6
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@847 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Address review comments from r843 (http://breakpad.appspot.com/307001)mark@chromium.org2011-10-052-6/+11
| | | | | | 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-051-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Keep a log of uploaded crash IDs on the Mac. Review URL: ↵stuartmorgan2010-12-171-1/+4
| | | | | | http://breakpad.appspot.com/245001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@748 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Put MachIPC into the google_breakpad namespaceted.mielczarek@gmail.com2010-08-161-0/+4
| | | | | | R=mark at http://breakpad.appspot.com/151001/show git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@650 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Review: http://breakpad.appspot.com/137001dmaclach2010-07-282-44/+53
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@634 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Clean up build for 64 bit.dmaclach2010-07-192-21/+14
| | | | | | | | | | | Fix up some broken mac projects. Consolidate project settings in xcconfig files. http://breakpad.appspot.com/130001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@627 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow the Breakpad Mac framework to be built without -fexceptions.mmentovai2009-10-151-51/+45
| | | | | | Review URL: http://breakpad.appspot.com/34003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@417 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Port fixes from internal Google Breakpad to SVN. nealsid2009-07-212-11/+14
| | | | | | | | | A=preston, nealsid R=Stuart, Preston git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@360 4c0a9323-5329-0410-9bdc-e9ce6186880e
* issue 323 - OS X exception handler / minidump generator should set exception ↵ted.mielczarek2009-06-121-1/+7
| | | | | | address correctly for EXC_BAD_ACCESS . r=nealsid at http://breakpad.appspot.com/15002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@350 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix for generating dumps on-demand to set the requesting thread to the ↵nealsid2009-06-121-1/+1
| | | | | | | | | | | current thread R=stuartmorgan A=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@349 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Support custom URL parameters. Added unit tests for Breakpad. Addednealsid2009-06-032-56/+160
| | | | | | | | | | | a way to specify server parameters in app plist file, as well. R=stuartmorgan, jeremy A=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@346 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Show the reporter UI for Breakpad.framework regardless of whether continuing ↵stuartmorgan2009-05-281-1/+1
| | | | | | the crashed process succeeded (issue 319) git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@341 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Mac reporter improvements:stuartmorgan2009-04-292-5/+11
| | | | | | | | | | - Made localization for UI entirely string-based, with flexible layout based on the size of the strings inserted. - Made the request for an email address optional. - Fixed a bug that would prevent comments or email from being collected if the text field were still focused. - Refactored askUserPermissionToSend. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@335 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Mac framework fixes: Propagate server type from plist, and fix precedence of ↵stuart.morgan2009-04-291-7/+8
| | | | | | defaults vs. plist git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@334 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Code review issue 9002: Add paranoid logging to Inspector & Reporternealsid2009-04-231-1/+1
| | | | | | | | | A=jeremy moskovich R=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@333 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add a parameter to control the Mac reporter timeout.stuartmorgan2009-04-222-0/+12
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@332 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix to support extensible parameter handling, and add process ↵nealsid2009-04-222-15/+62
| | | | | | | | | | | crashtime/uptime support R=stuart morgan A=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@331 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Patch from Jeremy Moskovich to build with 10.5 SDK correctly. Also removed ↵nealsid2009-04-211-5/+5
| | | | | | | | | | | externals directory. A=jeremy R=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@328 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Sender tweaks; strip whitespace from server-returned ID, and change the ↵stuart.morgan2009-04-071-2/+2
| | | | | | title of the dialog a bit. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@326 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix framework bundle ID and remove useless autogenerated InfoPlist.stringsstuart.morgan2009-04-062-1/+1
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@325 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Incorporate feedback from first Breakpad integration.nealsid2009-04-062-19/+53
| | | | | | | | | | | | | | | | | | | | This upload fixes five issues: 1) Preston's email was hardcoded in the xib :-( 2) Changed from xib to NIB to facilitate Tiger building 3) Changed the logs location to be user specifiable by BreakpadMinidumpLocation key, or ~/Library/Breakpad/<BREAKPAD_PRODUCT> by default 4) Fixed GTM Defines problem in order to build on Tiger 5) Also set CFBundleIcon in the sender program correctly, and updated plist, and renamed ReporterIcons to crash_report_sendER.ICNS. However the rietveld upload script doesn't appear to pick up renamed files correctly, so that file doesn't show up in the patch upload. Also various comments were updated for accuracy. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@323 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Open sourcing the Breakpad framework from Google. nealsid2009-04-017-0/+1421
A=many, many people R=nealsid, jeremy moskovich(from Chromium project) git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@322 4c0a9323-5329-0410-9bdc-e9ce6186880e