aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix README.ANDROID + formattingdigit@chromium.org2012-09-051-2/+2
| | | | | | | | | | | This patch updates README.ANDROID, since the client library now supports directly generating a minidump without raising a signal, and that it builds and runs fine on Android/x86. + Formatting fixes in minidump_writer_unittest.cc Review URL: https://breakpad.appspot.com/446002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1026 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Properly redeliver (or don't) signals to the previous handlers.mark@chromium.org2012-09-043-72/+304
| | | | | | | | | | | | | | | | | | | | | | | | If none of the installed ExceptionHandlers handle a signal (their FilterCallbacks or HandlerCallbacks all return false), then the signal should be delivered to the signal handlers that were previously installed. This requires that old_handlers_ become a static vector so that we can restore the handlers in the static HandleSignal. Currently it is also restoring signals in ~ExceptionHandler (if there are no others). This should not be required since our documentation states that a process can only have one ExceptionHandler for which install_handlers is true (and so we get the correct behavior if we simply leave our handlers installed forever), but even the tests themselves violate that. Patch by Chris Hopman <cjhopman@chromium.org> Review URL: https://breakpad.appspot.com/440002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1025 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add custom getcontext() implementation for Android.digit@chromium.org2012-08-316-15/+342
| | | | | | | | | | | | | | | | | | | | | | | | | This adds a minimalistic implementation of getcontext() for Android/ARM and Android/x86. The provided code is in assembly and only implements the bare minimum required by Breakpad to get the current processor state. Note that: - The FPU state is not saved to the ucontext_t on ARM. (that's actually the main difference with a normal getcontext() implementation). This is normal. On Linux/ARM, such state must be obtained with PTRACE_GETVFPREGS instead. This will be implemented in a future patch. - On x86, only the 'regular' FPU state is saved, to mimic the GLibc/i386 implementation. The state of SSE/SSE2/etc registers is not part of the upstream getcontext() implementation. Review URL: https://breakpad.appspot.com/444002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1024 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix minidump_writer_unittest on Androiddigit@chromium.org2012-08-301-4/+3
| | | | | | | | Android doesn't have /bin/cp, so instead do the copy manually with CopyFile() Review URL: https://breakpad.appspot.com/442002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1022 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix Linux/ARM GetInstructionPointer() in minidump_writer.ccdigit@chromium.org2012-08-301-1/+1
| | | | | | | | On ARM, the 'ip' register (a.k.a. r12) is not the same than 'pc' (a.k.a. r15) which holds the real instruction pointer. Review URL: https://breakpad.appspot.com/443002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1021 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix Breakpad unit tests build for Android.digit@chromium.org2012-08-237-0/+280
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch contains the source-related fixes to ensure that the Breakpad unit tests build properly when targetting Android. Calling 'make check' still fails because there is still no way to run the unit test programs on a device. This will be addressed by a future patch. Important notes: - You must target Android API level 9 (Gingerbread) or higher to build the unit tests. This requirement is due to the current GTest revision used in the breakpad source tree. - This patch adds headers providing inlined C library functions missing from the NDK (see src/common/android/testing). They are inlined to avoid modifying Makefile.am and other build files. - Similarly, the <wchar.h> header-fix under src/common/android/testing/include is only required by GTest's current revision. E.g. it's not needed when building Breakpad as part of Chromium which uses a more up-to-date revision. Review URL: https://breakpad.appspot.com/439002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1020 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix the tools and processor build for Androiddigit@chromium.org2012-08-212-5/+50
| | | | | | | | | | | | | | | | | | This small patch allows the build of the tools and processor when targetting Android with the Automake/Autconf build. Not that these necessarily work correctly at the moment, but there is no need for --disable-tools --disable-processor now when using --host=arm-linux-androideabi or --host=i686-linux-android. + Modify android/run-checks.sh to build all binaries with the Automake build. + Tiny fix for --abi=x86 in android/run-checks.sh Review URL: https://breakpad.appspot.com/438002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1018 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Improve Android supportdigit@chromium.org2012-08-2116-81/+678
| | | | | | | | | | | | | | | | | | This patch remove many Android-specific #ifdefs from the Breakpad source code. This is achieved by providing "fixed-up" platform headers (e.g. <signal.h> or <sys/user,h>), in the new directory src/common/android/include/, which masks differences between the NDK and GLibc headers. The old "android_link.h" and "android_ucontext.h" are moved and renamed. This also requires putting this directory as the first include path during Android-hosted builds, hence the modification of Makefile.am and configure.ac Review URL: https://breakpad.appspot.com/434002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1017 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix Android build.digit@chromium.org2012-08-202-2/+9
| | | | | | | | | | This patch fixes the Android build, and updates the NDK test application to use the new Linux ExceptionHandler API. + Use string insted of std::string in minidump_descriptor.h Review URL: https://breakpad.appspot.com/433002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1016 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Getting context information from the kernel when catching a SIGABRT on iOS.qsr@chromium.org2012-08-205-17/+39
| | | | | | | | | 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
* Fixing a Windows compiler warning in ↵ivan.penkov@gmail.com2012-08-173-6/+4
| | | | | | | | | | src/client/windows/crash_generation/minidump_generator.cc http://breakpad.appspot.com/432002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1014 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fixing a race condition in the Crash Generation Server which has toivan.penkov@gmail.com2012-08-154-147/+179
| | | | | | | | | | | do with simultaneous handling of dump requests and client process termination events. http://breakpad.appspot.com/430002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1013 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix narrowing conversion from -1 to size_tjessicag.feedback2012-08-141-4/+4
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1010 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Make ExceptionHandler::HandleSignal() public.mark@chromium.org2012-08-102-0/+12
| | | | | | | | | Patch by Alexander Potapenko <glider@chromium.org> Review URL: https://codereview.appspot.com/6461052/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1008 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Adding a way to create an ExceptionHandler that takes in a file descriptorjcivelli@chromium.org2012-08-0911-408/+650
| | | | | | | | | | | | where the minidump should be created, without the need of opening any other file. BUG=None TEST=Run unit-tests. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1007 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Clean up warnings about narrowing conversionjessicag.feedback2012-08-071-4/+4
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1006 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Prepending file names with "src/" in #include directives is undesirable.ivan.penkov@gmail.com2012-08-061-1/+1
| | | | | | | | Committed: http://breakpad.appspot.com/427003/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1005 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Conditionally compiling a unittest - based on whether AddressSanitizer is used. ivan.penkov@gmail.com2012-08-061-0/+7
| | | | | | | | http://breakpad.appspot.com/428002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1004 4c0a9323-5329-0410-9bdc-e9ce6186880e
* SORRY. It seems I've screwed up my commit for ↵digit@chromium.org2012-08-037-175/+134
| | | | | | | | | | http://breakpad.appspot.com/411002/, since revision 1001 only contains the new src/client/linux/linux_libc_support.cc and none of the other required files. I'm not sure what happened, but I'm re-uploading the patch has another issue. Review URL: https://breakpad.appspot.com/426002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1002 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove some linux libc calls from client library.digit@chromium.org2012-08-011-0/+228
| | | | | | | | | | | | | This patch removes a few libc calls from the client library when generating a minidump. + Move the static inlined functions from linux_libc_support.h into their own source file to avoid code duplication. Tested on linux-x86_64 with 'make check' and 'android/run-checks.sh' Review URL: https://breakpad.appspot.com/411002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1001 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Android ucontext_t handling refinement.digit@chromium.org2012-08-011-13/+116
| | | | | | | | | | | | | | This is a forward-compatible patch to prepare for future versions of the Android C library headers that define ucontext_t. When this patch is applied, Google Breakpad will build and work properly against any version of the NDK or platform headers. See http://code.google.com/p/android/issues/detail?id=34784 for more context. Review URL: https://breakpad.appspot.com/416002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1000 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Speculatively back out r984. See http://codereview.chromium.org/10805065/mark@chromium.org2012-07-258-108/+12
| | | | | | | | | | | and http://build.chromium.org/p/chromium/builders/NACL%20Tests%20%28x64%29/builds/34563 chrome src/native_client/tests/inbrowser_crash_test/crash_dump_tester.py says that the observed failures are a symptom of crash_service.exe itself crashing. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@999 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Speculatively back out r989 per http://codereview.chromium.org/10805065/ :mark@chromium.org2012-07-2410-305/+29
| | | | | | | | | | | | | | | | | | | | Ted Mielczarek: > You could try backing out r989, although Mozilla has been running with that > patch for months without issue. Me: > src/client/windows/handler/exception_handler.cc in r989 appears to have > formatting problems, an unwanted property change, and no real Breakpad review > history, so maybe we should back it out anyway until the proper process is > followed. NACL Tests nacl_integration failures: http://build.chromium.org/p/chromium/builders/NACL%20Tests/builds/30138 chrome src/native_client/tests/inbrowser_crash_test/crash_dump_tester.py says that the observed failures are a symptom of crash_service.exe itself crashing. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@998 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Back out r996, reinstating r985. That wasn't it.mark@chromium.org2012-07-244-4/+120
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@997 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Speculatively back out r985 because it may be causing crash_service problemsmark@chromium.org2012-07-244-120/+4
| | | | | | | | for Chrome. See http://codereview.chromium.org/10805065/ . I'll recommit this if it wasn't the problem. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@996 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Linux: Fix a bunch of clang errors from not handling return values.thestig@chromium.org2012-07-246-13/+61
| | | | | | Review URL: https://breakpad.appspot.com/421002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@995 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a Windows compiler warning with a cast:mark@chromium.org2012-07-231-1/+1
| | | | | | | | | | | minidump_generator.cc(423) : warning C4267: '=' : conversion from 'size_t' to 'ULONG', possible loss of data Patch by Robert Sesek <rsesek@chromium.org> Review URL: https://breakpad.appspot.com/420002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@994 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
* Fix sizeof bug in HTTPUpload::SendRequestted.mielczarek2012-07-201-2/+2
| | | | | | A=Himanshu <only4coding@gmail.com> R=ted at https://bugzilla.mozilla.org/show_bug.cgi?id=710993 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@992 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move minidump_extension_linux.h contents into minidump_format.hted.mielczarek2012-07-205-80/+29
| | | | | | R=mark at https://breakpad.appspot.com/415002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@991 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add a filter callback to CrashGenerationServer on macted.mielczarek2012-07-203-10/+76
| | | | | | 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
* Allow adding extra memory regions to minidump on linux/windowsted.mielczarek2012-07-1910-29/+305
| | | | | | A=Bill McCloskey <wmccloskey@mozilla.com> R=ted at https://bugzilla.mozilla.org/show_bug.cgi?id=662646 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@989 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add some more DWARF ARM register numbers to the DWARF CFI register mapsted.mielczarek2012-07-182-5/+28
| | | | | | R=jimb at https://breakpad.appspot.com/418002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@988 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Rework dump_symbols.cc using templates and traits classes to handle ↵ted.mielczarek2012-07-185-253/+371
| | | | | | | | cross-word-size symbol dumping R=mark at https://breakpad.appspot.com/393002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@987 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move some ELF-handling bits from file_id.cc to elfutils.{h,cc}ted.mielczarek2012-07-183-104/+204
| | | | | | R=mark at https://breakpad.appspot.com/392002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@986 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow the crash generation server to be initialized with a handle instead ↵ted.mielczarek2012-07-164-4/+120
| | | | | | | | of a pipe name A=bsmedberg R=ted at http://breakpad.appspot.com/406002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@985 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add the capability to include an arbitrary data stream within minidumpscdn@chromium.org2012-07-108-12/+108
| | | | | | | This is supplied via a custom field "custom-data-stream" Review URL: https://breakpad.appspot.com/408002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@984 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix compilation for iOS on XCode 4.5qsr@chromium.org2012-07-092-2/+1
| | | | | | | | | | | | | | 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
* Add MD_OS_ANDROID definition.digit@chromium.org2012-07-045-1/+38
| | | | | | | | | | | In order to better distinguish Android and Linux minidumps, introduce a new MD_OS_ANDROID definition, and modify related source code accordingly. Also append the build-fingerprint to the minidump location descriptor. This gives more information about the system image the device runs on. Review URL: https://breakpad.appspot.com/405002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@981 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Do not fail crash dump generation if handle operations tracing is not enabledmark@chromium.org2012-07-031-1/+2
| | | | | | | | | | | | | and yet the fatal exception was STATUS_INVALID_HANDLE. BUG=131699 Patch by Alex Pakhunov <alexeypa@chromium.org> Review URL: https://breakpad.appspot.com/409003/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@980 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow the minidump writer to collect handle data so that resulting dump containsmark@chromium.org2012-07-031-13/+240
| | | | | | | | | | | | | | | | | | | | | information about opened handles (!handle) and handle operations trace (!htrace). Depending on the dump type different amount of data is collected. For a full dump all handles and complete handle trace are included to the dump. In the case of a minidump the list of handle operations for a single handle value (the last handle value that caused STATUS_INVALID_HANDLE exception) is recorded. In either case the handle trace should be explicitly enabled by the client process (or by a debugger) in order to produce any handle trace data. BUG=131699 Patch by Alex Pakhunov <alexeypa@chromium.org> Review URL: https://breakpad.appspot.com/410002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@979 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fixing various compiler warnings and applying minor tweaks to allow running ofivan.penkov@gmail.com2012-07-0216-120/+235
| | | | | | | | | | the mojority of breakpad unittests in Google. http://breakpad.appspot.com/399002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@978 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
* Fixing a mem leak in test codeivan.penkov@gmail.com2012-06-294-9/+26
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@975 4c0a9323-5329-0410-9bdc-e9ce6186880e
* This change allows compiling the google-breakpad code using a global ↵ivan.penkov@gmail.com2012-06-28103-384/+520
| | | | | | ::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
* This is a fix for a stackwalker_x86 issue which has toivan.penkov@gmail.com2012-06-128-306/+559
| | | | | | | | | | do with FPO (frame-pointer-omission) optimized context frames where the context frame represents a Windows System call stub. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@971 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