aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* dump_syms: Fix handling of DW_FORM_ref_addr to work with DWARF 4mseaborn@chromium.org2014-12-031-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, dump_syms did not handle DW_FORM_ref_addr if it appeared in DWARF 4 debugging info. Also fix a DW_FORM_ref_addr case so that it doesn't fall through to the next switch case when assertions are disabled and the DWARF version isn't recognised. The following steps will reproduce the problem when using LLVM 3.4: cat <<END >example1.c int main() { return 0; } END cat <<END >example2.c void foo(int x) {} END clang -emit-llvm -g -c example1.c -o example1.bc clang -emit-llvm -g -c example2.c -o example2.bc llvm-link-3.4 example1.bc example2.bc -o combined.bc clang combined.bc -o executable ./google-breakpad/build/src/tools/linux/dump_syms/dump_syms executable When using LLVM bitcode linking in this way, LLVM's backend generates partially-merged DWARF debugging info in which some of the references to the "int" type go via "DW_FORM_ref_addr". Since PNaCl uses LLVM bitcode linking, this dump_syms failure occurs with nexes produced by the PNaCl toolchain. BUG= https://code.google.com/p/chromium/issues/detail?id=416368 TEST= see above R=mark@chromium.org, mcgrathr@chromium.org Review URL: https://breakpad.appspot.com/5744002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1408 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Microdumps: support aarch64 and lib mapping from APKprimiano@chromium.org2014-12-0221-776/+148959
| | | | | | | | | | | | | | | | | | - Filter modules by prot flags (only +x) not extensions. It wouldn't otherwise catch the case of Chrome mapping the library from the apk (which is mapped r-x but doesn't end in .so). - Use compile-time detection of target arch, in order to cope with multilib OSes, where uname() doesn't reflect the run-time arch. - Add OS information and CPU arch / count. - Add support for aarch64. - Add tests and stackwalk expectations for aarch64. - Fix a potential overflow bug in the processor. - Rebaseline the tests using smaller symbols. - Fix microdump_writer_unittest.cc on 32-bit host. BUG=chromium:410294 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1407 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Surfacing the process create time in google_breakpad::ProcessStateivanpe@chromium.org2014-11-2510-15/+123
| | | | | | | | | | | | | | | | | | | | | | | | | and updating minidump_stackwalk to show process uptime. I tested this with a minidump from Chrome and I got a result that is inline with what the Windows debugger is showing for that dump: minidump_stackwalk output: -------------------------- Process uptime: 601 seconds WinDBG output: -------------- Process Uptime: 0 days 0:10:01.000 I didn't update the machine readable output of minidump_stackwalk on purpose in order to avoid breaking someone that uses it. It can be added later to the machine output if needed. R=mark@chromium.org Review URL: https://breakpad.appspot.com/7754002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1406 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Introduce microdump_stackwalk comand line executableprimiano@chromium.org2014-11-258-734/+1354
| | | | | | | | | | | | | | | This introduces the microdump_stackwalk binary which takes advantage of the MicrodumpProcessor to symbolize microdumps. Its operation is identical to the one of minidump_stackwalk. This CL, in fact, is also refactoring most of the common bits into stackwalk_common. BUG=chromium:410294 R=mmandlis@chromium.org Review URL: https://breakpad.appspot.com/4704002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1405 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix microdump_writer and add unittest.primiano@chromium.org2014-11-252-10/+150
| | | | | | | | | | | | This adds some small fixes to the microdump writer and introduces a unittest. BUG=chromium:410294 R=mmandlis@chromium.org Review URL: https://breakpad.appspot.com/2814002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1404 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Microdump processing implementationmmandlis@chromium.org2014-11-1910-5/+982
| | | | | | | | | | | | According to design document: http://goo.gl/B3wIRN This is an initial implementation version, support ARM architecture only. BUG=chromium:410294 R=primiano@chromium.org Review URL: https://breakpad.appspot.com/5714003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1403 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add parameter --product to symupload.exeivanpe@chromium.org2014-11-176-959/+737
| | | | | | | | | | | | | | | | | Adding an optional parameter --product to symupload.exe. If specified it will be passed to the symbol server as POST parameter 'product'. As part of this, I'm also fixing: - Removed the .vcproj file as it can be generated from the .gyp file on demand. - error C4335: Mac file format detected. Fixed the line endings for omap.cc and dia_util.cc. - warning C4003: not enough actual parameters for macro 'max' Symupload.exe was compiled using MSVS 2013 and DIA SDK 12.0. Review URL: https://breakpad.appspot.com/9734002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1402 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix UMR and potential crash in Mac dump_syms.mark@chromium.org2014-11-051-1/+2
| | | | | | | | | | | | Patch by Robert Sesek <rsesek@chromium.org> BUG=https://code.google.com/p/google-breakpad/issues/detail?id=614 R=mark@chromium.org Review URL: https://breakpad.appspot.com/9724002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1401 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Read dynamic symbols table even if binary contains debug infoted.mielczarek@gmail.com2014-11-032-43/+51
| | | | | | A=Wander Lairson Costa <wcosta@mozilla.com>. R=ted at https://breakpad.appspot.com/9684002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1400 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix Windows client compilation on mingw.ted.mielczarek@gmail.com2014-11-0315-32/+45
| | | | | | A=Jacek Caban <jacek@codeweavers.com>, R=ted at http://breakpad.appspot.com/548002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1399 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Introduce microdump writer class.primiano@chromium.org2014-10-287-21/+490
| | | | | | | | | | | | | | | | | | | Microdumps are a very lightweight variant of minidumps. They are meant to dump a minimal crash report on the system log (logcat on Android), containing only the state of the crashing thread. This is to deal with cases where the user has opted out from crash uploading but we still want to generate meaningful information on the device to pull a stacktrace for development purposes. Conversely to conventional stack traces (e.g. the one generated by Android's debuggerd or Chromium's base::stacktrace) microdumps do NOT require unwind tables to be present in the target binary. This allows to save precious binary size (~1.5 MB for Chrome on Arm, ~10 MB on arm64). More information and design doc on crbug.com/410294 BUG=chromium:410294 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1398 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix breakpad on mips and x86_64 for the NDK r10c update.primiano@chromium.org2014-10-244-7/+92
| | | | | | | | | | | | | | This change introduces the necessary glue typedefs to deal with the mismatch introduced by the latest Android NDK (w.r.t. desktop Linux): - [x86_64] Rename fpregs mxcr_mask -> .mxcsr_mask - [mips] uc_mcontext.fpregs.fp_r.fp_dregs -> uc_mcontext.fpreg - [mips] restore the forked user.h Submitting this on behalf of fdegans@chromium.org TBR=mark@chromium.org git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1397 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Update breakpad to support Android NDK r10cprimiano@chromium.org2014-10-213-445/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to NDK r10c, Breakpad was privately backporting these system headers. This change is now unforking and removing those headers and using the ones from the NDK. Rationale: - They are finally available in the NDK, so there is no need to keep maintaining a fork (which was necessary up until recently to support arm64). - These forked headers, as they are today, are not compatible with the latest NDK (i.e. this change is required to roll NDK r10c). The forked ucontext.h, being removed by this CL, depends on some transitional features which are not compatible with the NDK release being targeted here. After this change, the NDK r10c is now required to build Breakpad on Android. Note that NDK releases are backwards compatible and contain all the previous API levels, so this change is NOT effectively enforcing to build against any particular Android SDK. Submitting this on behalf of fdegans@chromium.org BUG=chromium:358831 R=mark@chromium.org, primiano@chromium.org, rmcilroy@chromium.org git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1396 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Revert "Remove unecessary headers following NDK r10c update."primiano@chromium.org2014-10-212-0/+484
| | | | | | | | | | | | | This reverts r1394. Reason for the revert: r1394 is breaking compatibility with previous NDK (< r10c). BUG=chromium:358831 R=rmcilroy@chromium.org Review URL: https://breakpad.appspot.com/6754003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1395 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove unecessary headers following NDK r10c update.primiano@chromium.org2014-10-212-484/+0
| | | | | | | | | BUG=chromium:358831 R=primiano@chromium.org, rmcilroy@chromium.org Review URL: https://breakpad.appspot.com/10694002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1394 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fixing the Mac Inspector build by adding the launch_report dependency to the ↵ivanpe@chromium.org2014-10-171-0/+10
| | | | | | | | | | | | breakpadUtilities dylib project after it got pulled out from Inspector.mm This fix was provided by Thomas Schweitzer. R=mark@chromium.org, mmandlis@chromium.org Review URL: https://breakpad.appspot.com/6754002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1393 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Refactor .so name detection logic in minidump/linux_dumper.primiano@chromium.org2014-10-173-54/+70
| | | | | | | | | | | | | | | | This is a refactoring of the logic which determines the module name and path for a given MappingInfo in minidump_writer.cc. Such logic, which will be soon shared also with the upcoming microdump_writer.cc, is simply being moved to linux_dumper.cc, extracting a GetMappingEffectiveNameAndPath method. No behavioral change is intended. BUG=chromium:410294 R=thestig@chromium.org Review URL: https://breakpad.appspot.com/7734002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1392 4c0a9323-5329-0410-9bdc-e9ce6186880e
* The process uptime computation when the Windows out-of-process Crash Generationivanpe@chromium.org2014-10-151-2/+4
| | | | | | | | | | | | | | | | Server is used is done by subtracting the crashing process creation time from the current time when the crash is generated: uptime = now - process_creation_time There was a bug and instead of the process creation time the code was using the time when the process was registered with the Crash Generation Server. R=mark@chromium.org Review URL: https://breakpad.appspot.com/1744002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1391 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Linux multiprocess crash reporter: use pipe instead of socketpair in the clientted.mielczarek@gmail.com2014-10-092-9/+2
| | | | | | A=Jed Davis <jld@mozilla.com> R=ted at https://breakpad.appspot.com/1724002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1390 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove workaround for Linux credential-passing bugted.mielczarek@gmail.com2014-10-091-127/+0
| | | | | | A=Jed Davis <jld@mozilla.com> R=ted at https://breakpad.appspot.com/7724002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1389 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Microdumps: refactor out common parts of minidump_writer.ccprimiano@chromium.org2014-10-0110-619/+993
| | | | | | | | | | | | | | | | | | | | This change is a pure refactoring of the common bits of minidump_writer.cc that will be shared soon with the upcoming microdump_writer.cc. In particular, this CL is extracting the following classes: - ThreadInfo: handles the state of the threads in the crashing process. - RawContextCPU: typedef for arch-specific CPU context structure. - UContextReader: Fills out a dump RawContextCPU structure from the ucontext struct provided by the kernel (arch-dependent). - SeccompUnwinder: cleans out the stack frames of the Seccomp sandbox on the supported architectures. - MappingInfo: handles information about mappings BUG=chromium:410294 R=mmandlis@chromium.org Review URL: https://breakpad.appspot.com/4684002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1388 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix some nits raised by Timur for r1385.thestig@chromium.org2014-09-241-3/+2
| | | | | | | | R=ivanpe@chromium.org Review URL: https://breakpad.appspot.com/1734002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1387 4c0a9323-5329-0410-9bdc-e9ce6186880e
* IWYU in minidump_writer.cc to fix building with libc++ after r1385.thestig@chromium.org2014-09-241-0/+1
| | | | | | | | R=ivanpe@chromium.org Review URL: https://breakpad.appspot.com/6744002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1386 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Linux: Call memset() in a couple places in ExceptionHandler to avoid uninit ↵thestig@chromium.org2014-09-232-35/+32
| | | | | | | | | | | | | memory reads under Valgrind. Also move private static variables into the .cc file. BUG=chromium:332335 R=ivanpe@chromium.org Review URL: https://breakpad.appspot.com/5734002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1385 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix clang compilation error introduced in r1380.rmcilroy@chromium.org2014-09-221-1/+1
| | | | | | | | | | | | | | | | Fixes: .../linux_dumper.cc:308:25: error: address of array 'module->name' will always evaluate to 'true' [-Werror,-Wpointer-bool-conversion] module->name && module->name[0] == '/' && ~~~~~~~~^~~~ BUG=chromium:394703 R=rmcilroy@chromium.org Review URL: https://breakpad.appspot.com/5724002 Patch from Simon Baldwin <simonb@chromium.org>. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1384 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add inttypes for windows in dump_contextmmandlis@chromium.org2014-09-191-0/+10
| | | | | | | | | BUG=https://code.google.com/p/google-breakpad/issues/detail?id=606 R=primiano@chromium.org Review URL: https://breakpad.appspot.com/6734002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1381 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Extend mapping merge to include reserved but unused mappings.rmcilroy@chromium.org2014-09-191-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When parsing /proc/pid/maps, current code merges adjacent entries that refer to the same library and where the start of the second is equal to the end of the first, for example: 40022000-40025000 r-xp 00000000 b3:11 827 /system/lib/liblog.so 40025000-40026000 r--p 00002000 b3:11 827 /system/lib/liblog.so 40026000-40027000 rw-p 00003000 b3:11 827 /system/lib/liblog.so When the system linker loads a library it first reserves all the address space required, from the smallest start to the largest end address, using an anonymous mapping, and then maps loaded segments inside that reservation. If the loaded segments do not fully occupy the reservation this leaves gaps, and these gaps prevent merges that should occur from occurring: 40417000-4044a000 r-xp 00000000 b3:11 820 /system/lib/libjpeg.so > 4044a000-4044b000 ---p 00000000 00:00 0 4044b000-4044c000 r--p 00033000 b3:11 820 /system/lib/libjpeg.so 4044c000-4044d000 rw-p 00034000 b3:11 820 /system/lib/libjpeg.so Where the segments that follow this gap do not contain executable code the failure to merge does not affect breakpad operation. However, where they do then the merge needs to occur. Packing relocations in a large library splits the executable segment into two, resulting in: 73b0c000-73b21000 r-xp 00000000 b3:19 786460 /data/.../libchrome.2160.0.so > 73b21000-73d12000 ---p 00000000 00:00 0 73d12000-75a90000 r-xp 00014000 b3:19 786460 /data/.../libchrome.2160.0.so 75a90000-75c0d000 rw-p 01d91000 b3:19 786460 /data/.../libchrome.2160.0.so Here the mapping at 73d12000-75a90000 must be merged into 73b0c000-73b21000 so that breakpad correctly calculates the base address for text. This change enables the full merge by also merging anonymous maps which result from unused reservation, identified as '---p' with offset 0, and which follow on from an executable mapping, into that executable mapping. BUG=chromium:394703 R=rmcilroy@chromium.org, thestig@chromium.org Review URL: https://breakpad.appspot.com/7714003 Patch from Simon Baldwin <simonb@chromium.org>. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1380 4c0a9323-5329-0410-9bdc-e9ce6186880e
* GoogleCrashdumpUploader: adds Upload(string*) API to get the HTTP response.gunsch@chromium.org2014-09-186-19/+46
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1379 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fixes common_unittests build.thestig@chromium.org2014-09-173-0/+13
| | | | | | | | | | Original CL: https://breakpad.appspot.com/5704002/ A=gunsch@chromium.org R=gunsch@chromium.org Review URL: https://breakpad.appspot.com/8674002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1378 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix Windows client unittests build: add missing code filesmmandlis@chromium.org2014-09-161-0/+2
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1377 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Making the Mac build of crash_report work again after the last SVN syncmmandlis@chromium.org2014-09-161-0/+20
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1376 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Mac: Add support for in-process crash reporting to Breakpad.andresantoso@chromium.org2014-09-158-49/+196
| | | | | | | | | | | | | | | Add new option BREAKPAD_IN_PROCESS. If YES, Breakpad will write the dump file in-process and then launch the reporter executable as a child process. Originally reviewed at https://codereview.chromium.org/571523004/ BUG=chromium:414239 R=mark@chromium.org Review URL: https://breakpad.appspot.com/1714002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1375 4c0a9323-5329-0410-9bdc-e9ce6186880e
* This CL initialize NSData in HTTPMultipartUpload.m to nil.qsr@chromium.org2014-09-121-1/+1
| | | | | | | | | | | | Problem introduced by issue 2764002. R=qsr@chromium.org Review URL: https://breakpad.appspot.com/2794002 Patch from Oliver Robin <olivierrobin@chromium.org>. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1374 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Update processor.gyp file with new files added as part of microdumpmmandlis@chromium.org2014-09-101-0/+4
| | | | | | | | | | | | | | processing upcoming implementation. dump_context.cc and dump_object.cc added in r/1370 microdump_processor.cc and microdump_processor_unittest.cc added in r/1372 BUG=chromium:410294 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1373 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Introduce stub microdump processor classes.mmandlis@chromium.org2014-09-103-0/+165
| | | | | | | | | | | | | Adds the interfaces for MicrodumpProcessor (very similar to MinidumpProcessor) and corresponding unittest stubs. These stubs are required for multi-side integration and to start rolling the updated processor library into the dependent projects. BUG=chromium:410294 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1372 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Rename gyp variable use_titlecase_in_grd_files -> use_titlecase_in_grd.mark@chromium.org2014-09-101-1/+1
| | | | | | | | | | | The name changes in https://codereview.chromium.org/552203002/ Patch by Jacek Oleksy <joleksy@opera.com>. Review URL: https://breakpad.appspot.com/5694002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1371 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Refactoring in preparation for microdump processingmmandlis@chromium.org2014-09-0820-664/+960
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1370 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Back out trunk r1367.mark@chromium.org2014-09-036-50/+52
| | | | | | | | Compile error: https://bugzilla.mozilla.org/show_bug.cgi?id=1048091#c15 Review URL: https://breakpad.appspot.com/9694002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1369 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Adding possibility for client to upload the fileblundell@chromium.org2014-09-017-54/+224
| | | | | | | | | | | | | | | | | | This CL adds three features that will allow the client to upload the report file. Three main modifications are made : - Allow upload url to have a file:// scheme, and write the HTTP request to file in that case - Split the request in two parts in case of a file:// scheme, the request time and the response time. A new API [handleNetworkResponse] is added. - Give the opportunity to the client to get the configuration NSDictionary to be able to recreate the breakpad context at response time. Patch by Olivier Robin <olivierrobin@chromium.org> Review URL: https://breakpad.appspot.com/2764002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1368 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Support for multiple upload files in CrashReportSender/HTTPUploadted.mielczarek@gmail.com2014-08-286-52/+50
| | | | | | A=David Major <dmajor@mozilla.com> R=ted at https://bugzilla.mozilla.org/show_bug.cgi?id=1048091 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1367 4c0a9323-5329-0410-9bdc-e9ce6186880e
* constructor init list in wrong order in CrashGenerationServerted.mielczarek@gmail.com2014-08-281-2/+2
| | | | | | A=Robert Longson <longsonr@gmail.com> R=ted at https://bugzilla.mozilla.org/show_bug.cgi?id=1054632 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1366 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Set 32 bits iOS app to use vm_region_recurse_64.blundell@chromium.org2014-08-111-4/+0
| | | | | | | | | | | | | | | Using the vm_region_recurse API with a vm_region_submap_info_64 structure leads to a deviation in the structure when reading the user_tag field. Switching to the vm_region_recurse_64 API. Patch by Olivier Robin <olivierrobin@chromium.org> BUG=crbug/397133 Review URL: https://breakpad.appspot.com/4664002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1363 4c0a9323-5329-0410-9bdc-e9ce6186880e
* upload_system_symbols: Use the Go1.3 improvements to debug/macho.rsesek@chromium.org2014-07-316-349/+80
| | | | | | | | | | | This removes the custom MachO header reading functionality, since the stdlib can now read Fat files. R=andybons@chromium.org, mark@chromium.org Review URL: https://breakpad.appspot.com/10684002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1360 4c0a9323-5329-0410-9bdc-e9ce6186880e
* In Mac dump_syms, allow reading debug data out of both the Mach-O file and ↵rsesek@chromium.org2014-07-253-11/+110
| | | | | | | | | | | | | | | | | | | | | | | the dSYM. This adds a new |-g <dSYM path>| flag to dump_syms, to specify the dSYM path for the target Mach-O argument. The UUIDs and architectures of the two paths must match in order to dump symbols for this "split module." This reason for this is that for x86_64 binaries on OS X, the CFI data is stored in the __TEXT,__eh_frame segment of the Mach-O file, and the data is not copied into the dSYM by dsymutil. Therefore, just dumping the dSYM doesn't yield CFI data for x86_64 files, and both the dSYM and the Mach-O file must be dumped in order to produce a complete Breakpad symbol file. For i386 binaries, the CFI data is stored in the __DWARF,__debug_frame segment, which is part of the dSYM, so this isn't necessary. BUG=https://code.google.com/p/chromium/issues/detail?id=393594 R=mark@chromium.org Review URL: https://breakpad.appspot.com/6704002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1359 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add GYP build for the src/tools directory on Mac and Linux.rsesek@chromium.org2014-07-2413-112/+1034
| | | | | | | | | | | | | | | This GYP-ifies the src/processor and src/common directories on those platforms as well. The Makefile build uses much more granular unittest executables, so the new processor_unittests does not yet link because of multiple main() symbols, but this will be fixed later. Update issue 575 R=mark@chromium.org Review URL: https://breakpad.appspot.com/10674002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1358 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Annotate PageAllocator for MSan.mark@chromium.org2014-07-221-0/+10
| | | | | | | | | | | | | | | PageAllocator maps memory via sys_mmap(), implemented in linux_syscall_support.h. We need to explicitly inform MSan that this memory is initialized. Patch by Sergey Matveev <earthdok@chromium.org> BUG=chromium:394028 Review URL: https://breakpad.appspot.com/2744002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1356 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Chrome on Android now supports loading the shared library directly from the ↵rmcilroy@chromium.org2014-07-2210-43/+201
| | | | | | | | | | | | | | | | | | | | | | APK file. This patch makes two changes to breakpad to enable crash reporting to work correctly when the library is inside another file (an archive): - Do not filter mappings which map an executable at a non-zero offset. - If such an executable is mapped look in the ELF information for the shared object name and use that name in the minidump. Note this change doesn't care about the archive format and isn't Android specific (though loading the shared library this way is currently only done on Android). BUG=390618 R=thestig@chromium.org Review URL: https://breakpad.appspot.com/7684002 Patch from Anton Carver <anton@chromium.org>. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1355 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Both std::tr1::unordered_set and std::unordered_set are not allowed inivanpe@chromium.org2014-07-212-10/+63
| | | | | | | | | | | Google at this moment. This change is implementing a workaround that allows switching to hash_set and hash_map. R=mark@chromium.org Review URL: https://breakpad.appspot.com/6694002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1354 4c0a9323-5329-0410-9bdc-e9ce6186880e
* [Android]: Remove __system_property_get(ro.build.fingerprint) from ↵rmcilroy@chromium.org2014-07-181-17/+0
| | | | | | | | | | | | | | | WriteOSInformation. __system_property_get has been removed from the Android NDK for 'L' so Breakpad no longer links. This CL just removes the call in WriteOSInformation because Chrome already passes the build fingerprint as a crash key called "android_build_fp" in the crash report HTTP POST message. BUG=394841,393903 R=mark@chromium.org Review URL: https://breakpad.appspot.com/1694002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1351 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add frame pointer recovery to the AMD64 Stackwalker.rsesek@chromium.org2014-07-183-3/+61
| | | | | | | | | BUG=https://code.google.com/p/chromium/issues/detail?id=393594 R=mark@chromium.org Review URL: https://breakpad.appspot.com/10664002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1350 4c0a9323-5329-0410-9bdc-e9ce6186880e