aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Avoid redefinition of global static debug flag and remove unneededmark@chromium.org2013-12-051-11/+1
| | | | | | | | | | | #import "GTMDefines.h Patch by Alistair Tse <altse@chromium.org> Review URL: https://breakpad.appspot.com/824002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1244 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Do not read CFI section when not outputing CFI information.qsr@chromium.org2013-12-041-10/+14
| | | | | | | | | | | This revert revision 1182 and fix setting the module load address whether CFI information is needed or not. R=mark@chromium.org Review URL: https://breakpad.appspot.com/641002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1243 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix unused method warning.ivan.penkov@gmail.com2013-12-031-0/+2
| | | | | | Review URL: https://breakpad.appspot.com/814002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1242 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fixing several instances of wrong printf format specifiers.ivan.penkov@gmail.com2013-12-031-3/+3
| | | | | | Review URL: https://breakpad.appspot.com/794002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1241 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add missing #include of eintr_wrapper.h to auto_testfile.h. Since it'smark@chromium.org2013-12-034-19/+16
| | | | | | | | | | | | | Linux-specific, shuffle the files around a bit. (The implementation is actually POSIX-specific, but it's currently only used on Linux.) R=blundell@chromium.org Review URL: https://breakpad.appspot.com/804002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1240 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Don't HANDLE_EINTR(close). Either IGNORE_EINTR(close) or just close.mark@chromium.org2013-12-037-19/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | It is incorrect to wrap close in HANDLE_EINTR on Linux. Unnecessary #includes of eintr_wrapper.h are also removed. The variable naming within the macro is also updated per Chromium r178174. einter_wrapper.h contains a non-mechanical change. Mechanical changes were generated by running: sed -E -i '' \ -e 's/((=|if|return|CHECK|EXPECT|ASSERT).*)HANDLE(_EINTR\(.*close)/\1IGNORE\3/' \ -e 's/(ignore_result|void ?)\(HANDLE_EINTR\((.*close\(.*)\)\)/\2/' \ -e 's/(\(void\) ?)?HANDLE_EINTR\((.*close\(.*)\)/\2/' \ $(grep -rl HANDLE_EINTR.*close . --exclude-dir=.svn) sed -E -i '' -e '/#include.*eintr_wrapper\.h"/d' \ $(grep -EL '(HANDLE|IGNORE)_EINTR' \ $(grep -Elr '#include.*eintr_wrapper\.h"' . --exclude-dir=.svn)) BUG=chromium:269623 R=ted.mielczarek@gmail.com Review URL: https://breakpad.appspot.com/784002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1239 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Re-enable ios_exception_minidump_generator being built on non-ARM.blundell@chromium.org2013-12-021-5/+9
| | | | | | | | | | | This file gets built on x86 as part of building Chromium for the iOS simulator, which I had forgotten in the course of https://breakpad.appspot.com/664002/. R=mark@chromium.org Review URL: https://breakpad.appspot.com/774002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1238 4c0a9323-5329-0410-9bdc-e9ce6186880e
* In iOS, BREAKPAD_OUTPUT_DUMP_FILE value contains a malformed full path to ↵qsr@chromium.org2013-11-261-2/+1
| | | | | | | | | | | | | | | | | | | | the dump file. The std::string dumpFilename already contains the full pathname to the dump file. Appending it to the dumpDirAsNSString creates a string with the path portion duplicated, e.g.: /var/mobile/Applications/516BE756-DFD4-4F9B-85D5-85966B0038F7/Library/Caches/Breakpad/var/mobile/Applications/516BE756-DFD4-4F9B-85D5-85966B0038F7/Library/Caches/Breakpad/0A406D28-437D-48EE-9989-23F7F871818E.dmp Instead of this: /var/mobile/Applications/516BE756-DFD4-4F9B-85D5-85966B0038F7/Library/Caches/Breakpad/0A406D28-437D-48EE-9989-23F7F871818E.dmp R=markus@chromium.org, qsr@chromium.org Review URL: https://breakpad.appspot.com/744002 Patch from Akiva <scirsw@gmail.com>. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1237 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Process minidumps generated on ARM64 in iOS apps.mark@chromium.org2013-11-2311-10/+1342
| | | | | | | | | | | Patch by Colin Blundell <blundell@chromium.org> BUG=542 Review URL: https://breakpad.appspot.com/704002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1236 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Generate minidumps for 64-bit ARM apps on iOS.mark@chromium.org2013-11-2112-62/+418
| | | | | | | | | | | | | | | Adds an ARM64-specific definition of MDRawContext and support for writing out a minidump when running on ARM64. Additionally, extends the iOS minidump generator for NSExceptions to work on ARM64 as well as ARM. Patch by Colin Blundell <blundell@chromium.org> BUG=542 Review URL: https://breakpad.appspot.com/664002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1235 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Provide BreakpadGetCrashReportCount() and -[BreakpadControllermark@chromium.org2013-11-204-10/+30
| | | | | | | | | | | | | | | | getCrashReportCount:] This provides the ability for clients to query the number of crash reports that are waiting to upload. Patch by KiYun Roe <kiyun@chromium.org> BUG=547 Review URL: https://breakpad.appspot.com/714002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1234 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow SIGABRT to abort the program.thestig@chromium.org2013-11-071-2/+3
| | | | | | | | | | | | | | | | | | | | SIGABRT can be generated internally, usually by calling abort(), or externally by another process. When the signal is generated by the kernel, info->si_pid is 0 and the signal is treated in the same way as an exception (SIGSEGV, etc.), but the assumption that the exception happens again upon return from the handler is wrong, so we must have a special case for this. Original CL: https://breakpad.appspot.com/734002/ BUG=chromium:303075 TEST=tested with Alt-VolumeUp-X on Chrome OS A=semenzato@chromium.org R=semenzato@google.com Review URL: https://breakpad.appspot.com/754002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1233 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Use register %ebp (instead of %esp) when calculating the value ofivan.penkov@gmail.com2013-11-052-13/+245
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | .raSearchStart in the cases where there are alignment operators in the program string. If alignment operators are found in the program string, the current value of %ebp must be valid and it is the only reliable data point that can be used for getting to the previous frame. Previously, the .raSearchStart calculation was based on %esp and when %esp is aligned in the current frame (which is a lossy operation) the resulting .raSearchStart cannot was incorrect. There is code that is trying to work around this problem (scanning of up to 3 words for a return address) which is unreliable and it doesn't work in many cases (e.g. when the alignment is on a 64-byte boundary). This fix is already deployed in Google and it was measured to reduce the number of wrong stack traces (for Windows crashes) by 45%. No regressions have been found so far. Here is an example of an issue that was fixed by this change (where register %esp is aligned on the 64-byte boundary and the workarounds that we already had didn't work): https://code.google.com/p/chromium/issues/detail?id=311359 0:013> uf chrome_59630000!base::MessagePumpForIO::DoRunLoop 518 59685c39 55 push ebp 518 59685c3a 8bec mov ebp,esp 518 59685c3c 83e4c0 and esp,0FFFFFFC0h <== 64-byte boundary 518 59685c3f 83ec34 sub esp,34h 518 59685c42 53 push ebx 518 59685c43 56 push esi Program string contains 64-byte alignment: $T1 .raSearch = $T0 $T1 4 - 64 @ = $ebp $T1 4 - ^ = $eip $T1 ^ = $esp $T1 4 + = $20 $T0 56 - ^ = $23 $T0 60 - ^ = $24 $T0 64 - ^ = Review URL: https://breakpad.appspot.com/694002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1232 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add support for configuring the minimum log level at compile timemark@chromium.org2013-11-051-3/+14
| | | | | | | | | | | | | The minimum log level can be set by defining to macro BPLOG_MINIMUM_SEVERITY to one of google_breakpad::LogStream::Severity values. The default is SEVERITY_INFO. BUG=none R=mark@chromium.org Review URL: https://breakpad.appspot.com/724002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1231 4c0a9323-5329-0410-9bdc-e9ce6186880e
* NSLocalizedString compatibility (10.8 SDK and clang trunk -Wformat-extra-args)mark@chromium.org2013-11-051-12/+12
| | | | | | | | | | | | | | | | | | | | | Apparently, as of the 10.8 SDK, Apple has quietly decided that the first argument to NSLocalizedString is supposed to be usable as-is as a format string, instead of simply being the key to obtain a usable format string. The recent clang trunk enforces this, resulting in build breaks like crash_report_sender.m:560:14: error: data argument not used by format string [-Werror,-Wformat-extra-args] displayName]; ^ Breaking the result of NSLocalizedString into a temporary NSString* is enough to suppress the warning. BUG=chromium:314109 R=thakis@chromium.org Review URL: https://breakpad.appspot.com/674003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1230 4c0a9323-5329-0410-9bdc-e9ce6186880e
* map_serializers_unittest: fix unused variable warningvapier@chromium.org2013-10-301-2/+0
| | | | | | | | | | | | | | | Building with clang triggers warnings (which for us breaks the build): src/processor/map_serializers_unittest.cc:52:11: error: unused variable 'kSizeOfInt' [-Werror,-Wunused-const-variable] 1 error generated. Fix by Yunlian Jiang. BUG=chromium:311720 (http://crbug.com/311720) TEST=FEATURES="test" emerge-lumpy google-breakpad passes git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1229 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Print response code when sym_upload fails.mattdr.breakpad@gmail.com2013-10-291-0/+1
| | | | | | | | https://breakpad.appspot.com/631003/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1228 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add some symbols missing from my last commit.mattdr.breakpad@gmail.com2013-10-293-0/+15137
| | | | | | | | https://breakpad.appspot.com/622002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1227 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add simple exploitability analysis for Linux crashes.mattdr.breakpad@gmail.com2013-10-2910-212/+13551
| | | | | | | | https://breakpad.appspot.com/622002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1226 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Switch to scoped_array instead of inappropriate scoped_ptr.jessicag.feedback2013-10-281-1/+1
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1225 4c0a9323-5329-0410-9bdc-e9ce6186880e
* increase exception handler stack size for dumping threadvapier@chromium.org2013-10-231-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When running unittests under ASAN, we see that these code paths can slightly smash the stack. Double it to avoid that. [ RUN ] ExceptionHandlerTest.InstructionPointerMemoryMinBound ================================================================= ==12775== ERROR: AddressSanitizer: stack-buffer-overflow on address 0xf6787614 at pc 0xf7516b29 bp 0xf6786d38 sp 0xf6786d30 READ of size 4 at 0xf6787614 thread T0 #0 0xf7516b28 (/build/x86-generic/tmp/portage/chromeos-base/google-breakpad-1181-r66/work/google-breakpad-1181/build/src/client/linux/linux_client_unittest_shlib+0x69eb28) Shadow byte and word: 0x3ecf0ec2: f2 0x3ecf0ec0: f2 f2 f2 f2 More shadow bytes: 0x3ecf0eb0: f2 f2 f2 f2 0x3ecf0eb4: 04 f4 f4 f4 0x3ecf0eb8: f2 f2 f2 f2 0x3ecf0ebc: 04 f4 f4 f4 =>0x3ecf0ec0: f2 f2 f2 f2 0x3ecf0ec4: 04 f4 f4 f4 0x3ecf0ec8: f2 f2 f2 f2 0x3ecf0ecc: 04 f4 f4 f4 0x3ecf0ed0: f2 f2 f2 f2 Stats: 0M malloced (0M for red zones) by 2757 calls Stats: 0M realloced by 0 calls Stats: 0M freed by 2229 calls Stats: 0M really freed by 0 calls Stats: 3M (899 full pages) mmaped in 7 calls mmaps by size class: 7:4095; 8:2047; 9:1023; 10:511; 14:32; 16:16; mallocs by size class: 7:1831; 8:590; 9:85; 10:233; 14:3; 16:15; frees by size class: 7:1459; 8:437; 9:84; 10:232; 14:2; 16:15; rfrees by size class: Stats: malloc large: 15 small slow: 25 ==12775== ABORTING BUG=chromium:293519 TEST=ran unittests under ASAN and they now pass R=benchan@chromium.org Review URL: https://breakpad.appspot.com/636002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1224 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove define of mach_vm_region from mach_vm_compatibility.h.qsr@chromium.org2013-10-171-1/+0
| | | | | | | | | | | | mach_vm_region() is not called in the Breakpad codebase. Patch by: blundell@chromium.org R=qsr@chromium.org Review URL: https://breakpad.appspot.com/643002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1223 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Support symbol dumping for ARMV8 iOS apps.qsr@chromium.org2013-10-152-0/+37
| | | | | | | | | | | | | | | In my testing, ARM V8 object files and ARM V8 slices of universal binaries do not contain debug_frame sections (at least at this time), and hence dump_syms does not output CFI for ARM V8 even in the absence of the "-c" flag. Patch by:blundell@chromium.org BUG=542 R=qsr@chromium.org Review URL: https://breakpad.appspot.com/642002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1222 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove unittest from sources list of iOS client xcodeproj.qsr@chromium.org2013-10-151-2/+2
| | | | | | | | | | | | | This unittest has a main(), which causes linker errors when the library is linked into an application. Patch by:blundell@chromium.org R=qsr@chromium.org Review URL: https://breakpad.appspot.com/640002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1221 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix missing include in ios_exception_minidump_generator.mm.qsr@chromium.org2013-10-111-0/+2
| | | | | | | | R=qsr@chromium.org Review URL: https://breakpad.appspot.com/637004 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1220 4c0a9323-5329-0410-9bdc-e9ce6186880e
* In NonAllocatingMap, remove asserts around key/value length.rsesek@chromium.org2013-10-012-15/+0
| | | | | | | | | | | Since the data is stored using strncpy they are merely advisory in debug mode. BUG=https://code.google.com/p/chromium/issues/detail?id=298225 R=mark@chromium.org Review URL: https://breakpad.appspot.com/635002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1219 4c0a9323-5329-0410-9bdc-e9ce6186880e
* This patch adds required change for stackwalker_mips_unittest to pass on 64bitgordana.cmiljanovic@imgtec.com2013-09-301-1/+1
| | | | | | | | | | | | | | | | | platforms. One test from stackwalker_mips_unittest was failing as mentioned in: https://breakpad.appspot.com/632002/ https://breakpad.appspot.com/633002/ BUG=none TEST=stackwalker_mips_unittest (run on x86-64 and mips) Review URL: https://breakpad.appspot.com/634002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1218 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Adding stricter validation checks to various symbol parser functions.ivan.penkov@gmail.com2013-09-253-79/+511
| | | | | | | | | | | | | More specifically, the validation of the following record types is improved: - FILE records - FUNC records - Line record - PUBLIC records Adding unittests. Review URL: https://breakpad.appspot.com/632003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1217 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix the Android/MIPS build.digit@chromium.org2013-09-252-0/+55
| | | | | | | | | | | | | | | | | | | | | | | This patch fixes the build for Android on MIPS when using the latest official Android NDK (r9): - Update src/common/android/include/elf.h to add a missing definition for SHT_MIPS_DWARF. - Add src/common/android/include/sgidefs.h required by LSS when compiling for MIPS. - Update android/run-checks.sh to work properly with the --abi=mips option. All tests were passed succesfully with an emulator system image running Android 4.2. - Update other Android-specific files. R=Petar.Jovanovic@imgtec.com, mark@chromium.org Review URL: https://breakpad.appspot.com/633002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1216 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Adding mips support for Android.gordana.cmiljanovic@imgtec.com2013-09-259-8/+126
| | | | | | | | | | | | | | Mips linux support has been added previously in r1212. Some additional changes are required to make breakpad functional on Android. BUG=none TEST=build, unittests, chrome test application Review URL: https://breakpad.appspot.com/632002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1215 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Handle block helper functions in Breakpad symbol parser. Block helper ↵ivan.penkov@gmail.com2013-09-191-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | functions are associated with a source file but not associated with any line number. For such functions, the Breakpad symbol file contains 0 for the line numbers. Hence, 0 should be threated as valid line number. For more information on block helper functions, please, take a look at http://clang.llvm.org/docs/Block-ABI-Apple.html. Here is the symbol parser output: E0906 11:27:06.051507 22535 basic_source_line_resolver.cc:76] Line 380187: ParseLine failed E0906 11:27:06.051614 22535 basic_source_line_resolver.cc:76] Line 380188: ParseLine failed E0906 11:27:06.051648 22535 basic_source_line_resolver.cc:76] Line 380190: ParseLine failed E0906 11:27:06.051679 22535 basic_source_line_resolver.cc:76] Line 380191: ParseLine failed E0906 11:27:06.200814 22535 basic_source_line_resolver.cc:76] Line 446729: ParseLine failed Here are the contents of the Breakpad symbol file: FUNC 440d60 49 0 __copy_helper_block_ 440d60 b 0 3160 <<<----------- the third number is the line number 440d6b 3e 0 3160 <<<---------------------------- same here FUNC 440db0 36 0 __destroy_helper_block_ 440db0 a 0 3160 <<<---------------------------- same here 440dba 2c 0 3160 <<<---------------------------- same here Review URL: https://breakpad.appspot.com/629002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1214 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix for a clang error which is introduced by change r1212.gordana.cmiljanovic@imgtec.com2013-09-131-2/+2
| | | | | | | | | | | BUG=none TEST=build Review URL: https://breakpad.appspot.com/630002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1213 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Adding support for mips.gordana.cmiljanovic@imgtec.com2013-09-1129-39/+1914
| | | | | | | | | | | | | Support for mips cpu is added to all breakapad targets including unittests. BUG=none TEST=unittests Review URL: https://breakpad.appspot.com/614002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1212 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fixing minidump_dump to handle nacl dumps.bradnelson@chromium.org2013-09-051-0/+1
| | | | | | | | | | | | | | | Since nacl was not listed in decoding the code identifier, minidump_dump produces errors like this (and non-zero return code): 2013-09-05 13:41:04: minidump.cc:2044: ERROR: MinidumpModule code_identifier requires known platform, found 0x8205 BUG=https://code.google.com/p/nativeclient/issues/detail?id=3424 TEST=tested with minidumps from nacl locally R=mark@chromium.org,mseaborn@chromium.org Review URL: https://breakpad.appspot.com/628002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1211 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Update to build against the latest revision of linux_syscall_support.hmseaborn@chromium.org2013-09-051-3/+3
| | | | | | | | | | | | The prctl() calls must be updated following this LSS change: https://code.google.com/p/linux-syscall-support/source/detail?r=24 BUG=none TEST=build Review URL: https://breakpad.appspot.com/627002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1210 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Make StackWalkerAddressList use FRAME_TRUST_PREWALKED trust level.chrisha@chromium.org2013-09-042-6/+2
| | | | | | | | | Review URL: https://breakpad.appspot.com/624002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1209 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Create StackFrame::FRAME_TRUST_PREWALKED trust type.chrisha@chromium.org2013-08-233-8/+17
| | | | | | | | | | | | | This creates a new frame trust type for prewalked stack frames, as suggested in the review of https://breakpad.appspot.com/620002/. R=ted.mielczarek@gmail.com, mark@chromium.org Review URL: https://breakpad.appspot.com/621002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1208 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Create StackwalkerAddressList.chrisha@chromium.org2013-08-233-0/+359
| | | | | | | | | | | | | | This creates a pseudo stack-walker which does nothing except symbolize an already walked array of addresses. Will be used for adding 'additional stack trace' support to MinidumpProcessor. R=mark@chromium.org, ivan.penkov@gmail.com Review URL: https://breakpad.appspot.com/620002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1207 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow setting a limit on the number of frames to be recovered by stack scanning.ted.mielczarek@gmail.com2013-08-1917-29/+262
| | | | | | Patch by Julian Seward <jseward@acm.org> R=ted at https://bugzilla.mozilla.org/show_bug.cgi?id=894264 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1206 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Enable the SIGABRT handler on desktop OS Xted.mielczarek@gmail.com2013-08-143-8/+53
| | | | | | R=mark at https://breakpad.appspot.com/618002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1205 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Updating MDRawMiscInfo to support verions 3 and 4 of the ↵ivan.penkov@gmail.com2013-08-023-62/+246
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MINIDUMP_MISC_INFO_N structure. Added the necessary code for swapping and string conversion from UTF-16. Found and fixed a bug in MinidumpAssertion::Read where the max string length passed to UTF16codeunits was in bytes instead of UTF-16 chars. Tested with a minidump containing a version 3 structure to validate the string conversion routines. Interestingly enough the time_zone names does not appear to be abbreviation as the documentation was suggesting but full names, e.g. Eastern Standard Time: MDRawMiscInfo size_of_info = 232 flags1 = 0xf7 process_id = 0x54c4 process_create_time = 0x51a9323c process_user_time = 0x1 process_kernel_time = 0x0 processor_max_mhz = 3100 processor_current_mhz = 1891 processor_mhz_limit = 3100 processor_max_idle_state = 0x1 processor_current_idle_state = 0x1 The new fileds follow: process_integrity_level = 0x1000 process_execute_flags = 0x4d protected_process = 0 time_zone_id = 2 time_zone.bias = 300 time_zone.standard_name = Eastern Standard Time time_zone.daylight_name = Eastern Daylight Time Review URL: https://breakpad.appspot.com/617002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1204 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix erronoius address of crashinfo.auxv in minidump-2-core.thestig@chromium.org2013-07-191-1/+1
| | | | | | | | | | | | BUG=537 A=ajwong@chromium.org Original review: https://breakpad.appspot.com/615002/ R=ajwong@chromium.org Review URL: https://breakpad.appspot.com/616002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1203 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a memory leak, using stringWithUTF8String instead.yuwu@google.com2013-07-171-1/+1
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1202 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Check env var BreakpadMinidumpLocation first, if set, use it as ↵yuwu@google.com2013-07-151-2/+5
| | | | | | BREAKPAD_DUMP_DIRECTORY. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1201 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Detect corrupt symbol files during minidump processing. Recover from the ↵ivan.penkov@gmail.com2013-07-1134-213/+572
| | | | | | | | | | | | | | | | | | | | | errors and use the good data if possible. More specifically: - Detect corrupt symbols during minidump processing and provide the list of modules with corrupt symbols in the ProcessState. This will allow listing the corrupt symbol files in the final crash report. - Skip and recover from symbol data parse errors - don't give up until 100 parse errors are seen. - In order to recover from '\0' (null terminator) in the middle of a symbol file, a couple of methods have to be updated to require both buffer pointer and length. Previously they required only a buffer pointer (char *) and the size of the buffer was evaluated using strlen which is not reliable when the data is corrupt. Most of the changes are due to these signature updates. - Added and updated unittests. Also, updated minidump_stackwalk to show a WARNING for corrupt symbols. Output looks like this: ... Loaded modules: 0x000da000 - 0x000dafff Google Chrome Canary ??? (main) 0x000e0000 - 0x0417dfff Google Chrome Framework 0.1500.0.3 (WARNING: Corrupt symbols, Google Chrome Framework, 4682A6B4136436C4BFECEB62D498020E0) 0x044a8000 - 0x04571fff IOBluetooth 0.1.0.0 ... Review URL: https://breakpad.appspot.com/613002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1200 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Linux: Fix builds on systems without PR_SET_PTRACER in linux/prctl.h.thestig@chromium.org2013-07-021-1/+5
| | | | | | | | R=thakis@chromium.org Review URL: https://breakpad.appspot.com/612002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1199 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix Android build more.thestig@chromium.org2013-07-011-0/+2
| | | | | | | | | | | | | Android doesn't have the Yama LSM, so this line isn't needed. (It doesn't compile either.) Original CL: https://breakpad.appspot.com/610002/ A=thakis@chromium.org R=mark@chromium.org Review URL: https://breakpad.appspot.com/611002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1198 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix build on Android.mark@chromium.org2013-06-281-0/+5
| | | | | | | | Patch by Nico Weber <thakis@chromium.org> Review URL: https://breakpad.appspot.com/609002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1197 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a clang warning:mark@chromium.org2013-06-281-4/+2
| | | | | | | | | | | | | | | | | | | | ../../breakpad/src/processor/tokenize.cc:65:7: error: logical not is only applied to the left hand side of this comparison [-Werror,-Wlogical-not-parentheses] if (!remaining > 0) { ^ ~ ../../breakpad/src/processor/tokenize.cc:65:7: note: add parentheses after the '!' to evaluate the comparison first if (!remaining > 0) { ^ ( ) ../../breakpad/src/processor/tokenize.cc:65:7: note: add parentheses around left hand side expression to silence this warning if (!remaining > 0) { ^ ( ) R=thakis@chromium.org Review URL: https://breakpad.appspot.com/608002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1196 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a clang warning.mark@chromium.org2013-06-271-5/+7
| | | | | | | | | | | | | | | | | Since explanatoryDialogText returns something that migth be user input, this looks like a good change anyhow. ../../breakpad/src/client/mac/sender/crash_report_sender.m:269:38: error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security] [self explanatoryDialogText], ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ Patch by Nico Weber <thakis@chromium.org> Review URL: https://breakpad.appspot.com/607002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1195 4c0a9323-5329-0410-9bdc-e9ce6186880e