aboutsummaryrefslogtreecommitdiff
path: root/src/client
Commit message (Collapse)AuthorAgeFilesLines
* Fix minidump generation from exception.qsr@chromium.org2013-05-032-9/+15
| | | | | | Review URL: https://breakpad.appspot.com/583002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1169 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Rewrite SimpleStringDictionary with NonAllocatingMap.rsesek@chromium.org2013-04-244-20/+17
| | | | | | | | | | | 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
* Improve ARM CPU info reporting.digit@chromium.org2013-04-246-126/+897
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch improves several things for Linux/ARM: - Better detection of the number of CPUs on the target device. The content of /proc/cpuinfo only matches the number of "online" CPUs, which varies over time with recent Android devices. - Reconstruct the CPUID and ELF hwcaps values from /proc/cpuinfo, this is useful to better identify target devices in minidumps. - Make minidump_dump display the new information in useful ways. - Write a small helper class to parse /proc/cpuinfo and also use it for x86/64. - Write a small helper class to parse sysfds cpu lists. - Add a my_memchr() implementation. - Add unit tests. Tested on a Nexus S (1 CPU), Galaxy Nexus (2 CPUs) and a Nexus 4 (4 CPUs). Review URL: https://breakpad.appspot.com/540003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1160 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow option for efficient and safe opt out of in-proc dump generation for ↵ivan.penkov@gmail.com2013-04-234-41/+143
| | | | | | | | | | Windows breakpad clients. https://breakpad.appspot.com/549002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1157 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move SimpleStringDictionary from common/mac/ to just common/.rsesek@chromium.org2013-04-1810-314/+29
| | | | | | | | | | | | 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
* Add Android ifdef to fix issue 526ted.mielczarek@gmail.com2013-04-181-0/+2
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1153 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix missing result check in Mac exception handlerted.mielczarek@gmail.com2013-04-181-3/+7
| | | | | | 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
* ESP is zero in dumps created by CrashGenerationClient::RequestDump on i386 Linuxted.mielczarek@gmail.com2013-04-161-0/+30
| | | | | | Patch by Bruce Dawson <bruce.dawson@gmail.com>, R=ted at https://breakpad.appspot.com/533002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1149 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Removing redundant calls to string::c_str().ivan.penkov@gmail.com2013-03-291-7/+7
| | | | | | | | https://breakpad.appspot.com/539002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1139 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Get the complete linux gate mapping instead of only one pageted.mielczarek@gmail.com2013-03-291-3/+2
| | | | | | | A=Mike Hommey <mh@glandium.org> R=ted at https://breakpad.appspot.com/542002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1134 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix Windows unittest build on VC2012ted.mielczarek@gmail.com2013-03-291-2/+9
| | | | | | R=mark at https://breakpad.appspot.com/539003/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1133 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix three unit tests on recent ARM devices.digit@chromium.org2013-03-211-0/+24
| | | | | | | | | | | | Three unit tests were failing on recent ARM devices (e.g. Galaxy Nexus or Nexus 4), while ran properly on older ones (e.g. Nexus S). The main issue is that the instruction cache needs to be explicitely cleared on ARM after writing machine code bytes to a malloc()-ed page with PROT_EXEC. Review URL: https://breakpad.appspot.com/540002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1132 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Linux MinidumpWriter should properly set number_of_processors on ARMted.mielczarek@gmail.com2013-03-121-0/+4
| | | | | | | | | R=digit at http://breakpad.appspot.com/425002 This doesn't fix this problem in all possible cases, but it makes it slightly better in some cases, so I think that's a net positive. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1131 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove "library" variableted.mielczarek@gmail.com2013-03-071-9/+1
| | | | | | | | A=Thiago Farina <tfarina@chromium.org> BUG=http://code.google.com/p/chromium/issues/detail?id=111541 R=thestig@chromium.org at https://breakpad.appspot.com/537002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1130 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Make OOP mac crashreporting exit after writing dumpted.mielczarek@gmail.com2013-03-061-1/+4
| | | | | | R=mark at https://breakpad.appspot.com/538002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1127 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Use stdint types everywhereted.mielczarek@gmail.com2013-03-0619-112/+113
| | | | | | R=mark at https://breakpad.appspot.com/535002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1121 4c0a9323-5329-0410-9bdc-e9ce6186880e
* size_limit_ member of minidump_descriptor ignored in copy constructorted.mielczarek@gmail.com2013-02-142-2/+4
| | | | | | Patch by Avishai Hendel <avish@fb.com>, R=mkrebs at https://codereview.appspot.com/7305060/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1114 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix some issues with -Werror=sign-compare on Android buildsted.mielczarek@gmail.com2013-02-011-1/+1
| | | | | | R=digit at https://breakpad.appspot.com/524002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1110 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add API to find out if there is crash reports to send to the server.qsr@chromium.org2013-02-012-0/+10
| | | | | | Review URL: https://breakpad.appspot.com/518002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1109 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove a call to new[] from WriteDSODebugStreamted.mielczarek@gmail.com2013-01-311-4/+3
| | | | | | R=mark at https://breakpad.appspot.com/523002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1107 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix remaining processor/scoped_ptr.h references for reals.thestig@chromium.org2013-01-221-1/+1
| | | | | | Review URL: https://breakpad.appspot.com/516003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1104 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix remaining processor/scoped_ptr.h references after r1096.thestig@chromium.org2013-01-223-3/+3
| | | | | | Review URL: https://breakpad.appspot.com/516002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1103 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove <(library) usage from gyp files.thestig@chromium.org2013-01-194-6/+6
| | | | | | | | | | BUG=chromium:111541 Patch by Thiago Farina <tfarina@chromium.org>. Original code review: https://breakpad.appspot.com/513002/ Review URL: https://breakpad.appspot.com/515002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1101 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move scoped_ptr.h to commonted.mielczarek@gmail.com2013-01-177-7/+7
| | | | | | R=mark at https://breakpad.appspot.com/509002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1096 4c0a9323-5329-0410-9bdc-e9ce6186880e
* ExceptionHandler::HandleSignalmark@chromium.org2013-01-141-2/+5
| | | | | | | | | | | | | | | (https://code.google.com/searchframe#OAMlx_jo-ck/src/breakpad/src/client/linux/handler/exception_handler.cc&exact_package=chromium&q=SI_USER&type=cs&l=389) requires si_pid to be equal to getpid() for SI_USER signals. This is a patch by Lei Zhang (thestig@chromium.org) that fixes the issue with Chrome+ASan being unable to upload the crash dump to the crash server when the seccomp sandbox is on. Patch by Alexander Potapenko <glider@chromium.org> Review URL: https://codereview.appspot.com/7066068/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1095 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix typo.qsr@chromium.org2012-12-171-2/+2
| | | | | | Review URL: https://breakpad.appspot.com/506002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1093 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Updating BreakpadController to allow start and stop being nop.qsr@chromium.org2012-12-171-4/+5
| | | | | | | | When BreakpadController is already started or stopped, trying to restart it or restopping it will now be no-op instead of asserting. Review URL: https://breakpad.appspot.com/505002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1092 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix minidump size limit used for MinidumpSizeLimit unittestmkrebs@chromium.org2012-12-121-4/+25
| | | | | | | | | | | | | | If the stack sizes for threads in the MinidumpSizeLimit test are too big, then subtracting 64KB from the normal minidump file size is not enough to trigger the size-limiting logic. Instead of basing the arbitrary limit off of the normal file size, make it relative to the 8KB stack size the logic assumes. BUG=google-breakpad:510 TEST=Ran unittests Review URL: https://breakpad.appspot.com/504002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1090 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow the Mac and iOS Breakpad clients to build without exceptions when the ↵mark@chromium.org2012-12-113-10/+48
| | | | | | | | | | | | 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
* Explicitly include unistd.h for getpagesize().mark@chromium.org2012-12-071-0/+1
| | | | | | | | | 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
* Add assertion on initialization sequence.qsr@chromium.org2012-11-282-0/+24
| | | | | | | | | | | | The order at which to call the controller methods is: 1) Any method that change the configuration_ field 2) start 3) Any other method This change adds assertion that it is done correctly. Review URL: https://breakpad.appspot.com/499003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1085 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix unused variable warning in optimized build (fix proveded by Matthew Riley)ivan.penkov@gmail.com2012-11-211-2/+3
| | | | | | | | http://breakpad.appspot.com/499002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1084 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Cleaning up google-breakpad source code of signed-unsigned comparison warningsivan.penkov@gmail.com2012-11-217-36/+40
| | | | | | | | http://breakpad.appspot.com/488002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1083 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add optional file size limit for minidumpsmkrebs@chromium.org2012-11-155-17/+266
| | | | | | | | | | | | | | | | | | | | | | When there are upwards of 200 threads in a crashing process, each having an 8KB stack, this can result in a huge, 1.8MB minidump file. So I added a parameter that, if set, can compel the minidump writer to dump less stack. More specifically, if the writer expects to go over the limit (due to the number of threads), then it will dump less of a thread's stack after the first 20 threads. There are two ways to specify the limit, depending on how you write minidumps: 1) If you call WriteMinidump() directly, there's now a version of the function that takes the minidump size limit as an argument. 2) If you use the ExceptionHandler class, the MinidumpDescriptor object you pass to it now has a set_size_limit() method you would call before passing it to the constructor. BUG=chromium-os:31447, chromium:154546 TEST=Wrote a size-limit unittest; Ran unittests Review URL: https://breakpad.appspot.com/487002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1082 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix assertion failure in WriteMappings() for zero modulesmkrebs@chromium.org2012-11-141-2/+9
| | | | | | | | | | | If there were no mappings where ShouldIncludeMapping() returned true, AllocateObjectAndArray() would die with an assertion failure. BUG=chrome-os-partner:14914 TEST=Ran unittests Review URL: https://breakpad.appspot.com/492002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1081 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix typo from r1079.thestig@chromium.org2012-11-131-1/+1
| | | | | | | TBR=digit Review URL: https://breakpad.appspot.com/496002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1080 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Linux: Avoid truncating the vendor id.thestig@chromium.org2012-11-091-5/+3
| | | | | | Review URL: https://breakpad.appspot.com/495002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1079 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Minor cleanup in src/client/linux/minidump_writer/minidump_writer_unittest.cc.thestig@chromium.org2012-11-081-18/+18
| | | | | | Review URL: https://breakpad.appspot.com/486002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1078 4c0a9323-5329-0410-9bdc-e9ce6186880e
* SuspendThread returns a DWORD value, so checking the return value with ">= 0"ivan.penkov@gmail.com2012-11-011-3/+6
| | | | | | | | | | | doesn't work. On failure, the return value is (DWORD) -1 (which is 0xFFFFFFFF). http://breakpad.appspot.com/491002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1075 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fixing Windows client unit tests. They were broken in r1034 due to gMock andivan.penkov@gmail.com2012-10-198-16/+449
| | | | | | | | | | | | gTest upgrade. While fixing the broken tests I also used the opportunity to add a few more tests that cover filter and callback execution, and nesting of exception handlers. https://breakpad.appspot.com/489002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1073 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix some compiler errors in exception_handler_unittest by casting like crazyted.mielczarek@gmail.com2012-10-151-2/+4
| | | | | | R=digit at https://breakpad.appspot.com/483002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1072 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Make Linux signal handler more robust.digit@chromium.org2012-10-092-0/+60
| | | | | | | | | | | | | | | | | | | | | | Breakpad can be used on processes where a mistaken library saves then restores one of our signal handlers with 'signal' instead of 'sigaction'. This loses the SA_SIGINFO flag associated with the Breakpad handler, and in some cases (e.g. Android/ARM kernels), the values of the 'info' and 'uc' parameters that ExceptionHandler::SignalHandler() receives will be completely bogus, leading to a crash when the function is executed (and of course, no minidump generation). To work-around this, have SignalHandler() check the state of the flag. If it is incorrectly unset, re-register with 'sigaction' and the correct flag, then return. The signal will be re-thrown, and this time the function will be called with the correct values. Review URL: https://breakpad.appspot.com/481002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1067 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix the Android unit tests.digit@chromium.org2012-10-091-4/+0
| | | | | | | | | | | | | | | | | | | - One of the unit test binaries refused to link due to missing linker flags. - The WriteDSODebug() function now works on Android, so do not special-case it anymore. - Ensure android/run-checks.sh will complain properly if the client unit test suite fails on Android. It used to consider that such failures were acceptable. Note that it still considers failures when running the tools and processor test suite on the device normal (fixing this is a lot harder, and these parts of Breakpad typically never run on a device, but on the host). Review URL: https://breakpad.appspot.com/482002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1066 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Don't bail if a thread's stack pointer is invalidmkrebs@chromium.org2012-10-087-36/+137
| | | | | | | | | | | | | | Currently, if a thread's stack pointer is not within a valid memory page, the minidump writing will fail with an error. This change allows an invalid stack pointer by simply setting the memory size to zero in the minidump. The processing code already checks for the size being zero, although it currently just gives an error (see https://breakpad.appspot.com/413002/). BUG=google-breakpad:499, chromium-os:34880 TEST=make check, manually ran minidump-2-core and core2md Review URL: https://breakpad.appspot.com/478002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1065 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Update dump_syms to correctly filter on cpu subtype.qsr@chromium.org2012-10-041-3/+5
| | | | | | | 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
* Fix an analyzer warning due to value assigned but not used.kenbongort@gmail.com2012-10-031-2/+0
| | | | | | | http://breakpad.appspot.com/473002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1058 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add custom implementation of NXGetArchInfoXXX to allow adding new arch.qsr@chromium.org2012-10-031-0/+12
| | | | | | | | | 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
* Fix merge error from r1055ted.mielczarek@gmail.com2012-10-021-1/+0
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1056 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix linux compile errors for some systems.qsr@chromium.org2012-10-022-10/+11
| | | | | | | | Codereview: https://breakpad.appspot.com/460002/ Patch by: jakerr@google.com git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1055 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix the Linux build with clang.thestig@chromium.org2012-09-261-0/+1
| | | | | | Review URL: https://breakpad.appspot.com/470002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1052 4c0a9323-5329-0410-9bdc-e9ce6186880e