aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* disable unittests under ASAN that use memory crashesvapier@chromium.org2013-12-113-5/+39
| | | | | | | | | | | | | | | | | | | | | There are a bunch of tests that use invalid memory acesses (on purpose) to trigger a crash so that we can detect things are dumped correctly. When we run under ASAN, it catches those accesses and the breaks the testing flow. For now, use the existing ADDRESS_SANITIZER symbol to disable more tests. Ideally we'd use a compile-time attribute to disable ASAN on a few funcs, but that seems to be broken atm. BUG=chromium:293519 BUG=chromium:304575 TEST=ran unittests under ASAN and they now pass TEST=ran unittests w/out asan/clang and they still pass R=benchan@chromium.org Review URL: https://breakpad.appspot.com/884002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1255 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Address additional comments from r1248. Fix the register to check and fix ↵thestig@chromium.org2013-12-101-5/+5
| | | | | | | | | | | some style nits. BUG=495 R=mark@chromium.org Review URL: https://breakpad.appspot.com/834003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1254 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Conditionalize use of <cpuid.h> headermcgrathr@chromium.org2013-12-101-1/+4
| | | | | | | | | | | | This header only exists for x86 environments, but was included unconditionally. That broke the builds for all non-x86 environments. R=mark@chromium.org BUG= Review URL: https://breakpad.appspot.com/824003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1253 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Use AM_MAINTAINER_MODE so configure supports --enable-maintainer-modeted.mielczarek@gmail.com2013-12-101-0/+5
| | | | | | | A=mcgrathr R=bradnelson at https://breakpad.appspot.com/864003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1251 4c0a9323-5329-0410-9bdc-e9ce6186880e
* check for and enable Large File Support automaticallyvapier@chromium.org2013-12-101-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | If you try to process a file using a 32bit build that is larger than 2GiB in size, the linux kernel will reject things: $ strace -eopen dump_syms ./chrome ./ > chrome.sym ... open(".//chrome.debug", O_RDONLY) = -1 EOVERFLOW (Value too large for defined data type) So let's use the existing autoconf macro to check for and enable support as need be. We have to shift the existing m32 logic up to before we start doing feature test macros though otherwise a simple configure won't work: $ ./configure --enable-m32 This is because it first tests LFS and such w/out the -m32 flags. BUG=chromium:266064 TEST=`./configure --enable-m32 && make && make check` passes R=benchan@chromium.org Review URL: https://breakpad.appspot.com/619002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1250 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix Windows release build error due to unreferenced variables.thestig@chromium.org2013-12-091-22/+15
| | | | | | | | | BUG=544 R=mark@chromium.org Review URL: https://breakpad.appspot.com/874002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1249 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add MMX detection when getting registers in Linux.thestig@chromium.org2013-12-091-2/+11
| | | | | | | | | | | | | | | | For CPUs that don't support the MMX instruction set, such pre-Pentium III or industrial x86 embedded PCs, the minidump fails when it tries to retrieve MMX specific registers. This patch adds MMX detection for that call. Tested on Ubuntu 12.04 with i686, and on a custom Linux distro on a Vortex86DX microcontroller. Original review: https://breakpad.appspot.com/455002/ A=aras.vaichas BUG=495 Review URL: https://breakpad.appspot.com/864002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1248 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Back out r1244mark@chromium.org2013-12-091-1/+11
| | | | | | | | | | | | | | | | | | | ------------------------------------------------------------------------ r1244 | mark@chromium.org | 2013-12-05 18:13:18 -0500 (Thu, 05 Dec 2013) | 7 lines Avoid redefinition of global static debug flag and remove unneeded #import "GTMDefines.h Patch by Alistair Tse <altse@chromium.org> Review URL: https://breakpad.appspot.com/824002 ------------------------------------------------------------------------ Breakage documented at https://breakpad.appspot.com/824002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1247 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Switch armv7 setting to arm_version==7.mark@chromium.org2013-12-081-6/+6
| | | | | | | | | | | Patch by Mostyn Bramley-Moore <mostynb@opera.com> BUG=chromium:234135 Review URL: https://breakpad.appspot.com/844002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1246 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add include guards and avoid redefinition of false/true in convert_UTF.mark@chromium.org2013-12-052-0/+10
| | | | | | | | | Patch by Alistair Tse <altse@chromium.org> Review URL: https://breakpad.appspot.com/834002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1245 4c0a9323-5329-0410-9bdc-e9ce6186880e
* 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