aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* breakpad: Remove semicolons, iOS edition.Nico Weber2019-02-252-2/+2
| | | | | | | Bug: chromium:926235 Change-Id: I237e7b7d89e5746beea80754675a232c881f25f6 Reviewed-on: https://chromium-review.googlesource.com/c/1487336 Reviewed-by: Mark Mentovai <mark@chromium.org>
* breakpad: Remove semicolons, mac edition.Nico Weber2019-02-226-8/+8
| | | | | | | Bug: chromium:926235 Change-Id: I473a7727c1831717b92a582c50d98256ea41d854 Reviewed-on: https://chromium-review.googlesource.com/c/1482716 Reviewed-by: Mark Mentovai <mark@chromium.org>
* breakpad: Remove semicolons.Nico Weber2019-02-212-2/+2
| | | | | | | Bug: chromium:926235 Change-Id: I7f0795ebd651303b6f7fb6981c2f639e17a536bb Reviewed-on: https://chromium-review.googlesource.com/c/1481232 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Delete deprecated SetFirstChanceExceptionHandler functionAndreas Haas2019-02-193-38/+0
| | | | | | | | | | | | | | | This CL removes the code I marked as deprecated in https://crrev.com/c/1411776. I could not delete the code in that CL before I removed all uses in Chrome in https://crrev.com/c/1411643. The tracking bug contains more information. R=mark@chromium.org Bug: chromium:921971 Change-Id: I77597826ef6e69a13ece529a5d24702bc72aa436 Reviewed-on: https://chromium-review.googlesource.com/c/1412353 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Always emit a 32-bit crash address for 32-bit architecturesGabriele Svelto2019-01-303-8/+56
| | | | | | | | | | | | | | Certain minidumps for 32-bit crashes have the upper 32-bit of the crash address (which is a 64-bit value) set to non-zero values. This caused a crash address with more than 32-bits to be printed out for minidumps of 32-bit architectures. This patch masks out those bits when reading the raw minidump data to ensure this doesn't happen anymore. Bug: google-breakpad:783 Change-Id: Ieef6dff759fd0ee2efc47c4c4a3cf863a48f0659 Reviewed-on: https://chromium-review.googlesource.com/c/1427819 Reviewed-by: Ted Mielczarek <ted.mielczarek@gmail.com>
* Make the minidump processor correctly populate the CPU information string ↵Gabriele Svelto2019-01-301-0/+1
| | | | | | | | | | | | | | for Microsoft-style ARM64 minidumps This affects the output of tools like minidump_stackwalk which currently print out the hexadecimal representation of the architecture instead of the "arm64" string. BUG=780 Change-Id: Id1d9d65fa5f3509c8c6580e2e3042f7d682b52be Reviewed-on: https://chromium-review.googlesource.com/c/1412004 Reviewed-by: Mike Frysinger <vapier@chromium.org>
* Introduce SetFirstChanceHandler with more strict signatureAndreas Haas2019-01-153-3/+40
| | | | | | | | | | | | | | | | | | | Eventually, I want to remove the current version of SetFirstChanceHandler. That is why I changed the name of the current callback type to FirstChanceHandlerDeprecated. I also made sure that it is not possible to have two different FirstChanceHandlers set at the same time. This is the first of a set of CLs to clean up the API between Chrome, BreakPad, and V8. See more information in the tracking bug. R=mark@chromium.org Bug: chromium:921971 Change-Id: Ia8c2fd9bd875c36dd7ae8bb4a02e538556bc67a1 Reviewed-on: https://chromium-review.googlesource.com/c/1411776 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Extract intruction pointer correctly for Windows ARM64Tom Tan2019-01-031-1/+3
| | | | | | | Bug: 893460 Change-Id: Ibbdf734e72c29c4779b6a701dceec1626056a9ba Reviewed-on: https://chromium-review.googlesource.com/c/1393763 Reviewed-by: Joshua Peraza <jperaza@chromium.org>
* Conditionally define BPLOG_LAZY_STREAMJoshua Peraza2018-11-271-0/+2
| | | | | | | | This allows BPLOG_LAZY_STREAM to be overridden by BP_LOGGING_INCLUDE Change-Id: I5c9ec19b619ad5db9e97f3a1813b0f965a357b38 Reviewed-on: https://chromium-review.googlesource.com/c/1351361 Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
* Add mac dump_syms support for arm64eJoshua Peraza2018-11-263-4/+45
| | | | | | Change-Id: I6a25b47d4fc5e42ff9fa30107b563dcf1d51c0d1 Reviewed-on: https://chromium-review.googlesource.com/c/1351352 Reviewed-by: Mark Mentovai <mark@chromium.org>
* fix dump_syms xcode projectJoshua Peraza2018-11-261-0/+10
| | | | | | | | | | dwarf_range_list_handler.{cc,h} were added in 16e08520. Default to building with c++11. Change-Id: Iceb29ab665260a9e71a30920fdfb5623d10a9cfa Reviewed-on: https://chromium-review.googlesource.com/c/1351351 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Skip empty DWARF code range when mapping linesLudovic Guegan2018-11-211-3/+6
| | | | | | | | BUG=777 Change-Id: Ic6d05eee3ff4660b6d087999a8cea04a1ee3e92b Reviewed-on: https://chromium-review.googlesource.com/c/1333507 Reviewed-by: Ted Mielczarek <ted.mielczarek@gmail.com>
* Conditionally define BPLOG_IFJoshua Peraza2018-10-121-0/+2
| | | | | | | | This allows BPLOG_IF to be overriden by defines in BP_LOGGING_INCLUDE. Change-Id: Ic6e8373476cc4d1f73d55e13a23686a2c8309fdc Reviewed-on: https://chromium-review.googlesource.com/c/1278104 Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
* Adds method to get the date of the most recent iOS crash report.Evan Bernstein2018-10-084-0/+63
| | | | | | | | Also adds method to determine if breakpad is started. Change-Id: I272765e7ac6bbc07d77ca2d8dcc34d51c205116e Reviewed-on: https://chromium-review.googlesource.com/c/1260625 Reviewed-by: Joshua Peraza <jperaza@chromium.org>
* Swap MDCVInfoELF::cv_signature if needed.Lei Zhang2018-08-281-1/+5
| | | | | | | | BUG=chromium:877888 Change-Id: Ie4437228dfc32619ce5feb1769ba1644a4ea8ca2 Reviewed-on: https://chromium-review.googlesource.com/1192963 Reviewed-by: Joshua Peraza <jperaza@chromium.org>
* win: fix formatting after 21c98747Joshua Peraza2018-08-271-1/+1
| | | | | | Change-Id: If50c3563fec7a8a9edf05c22f7d157201184df38 Reviewed-on: https://chromium-review.googlesource.com/1191671 Reviewed-by: Mike Frysinger <vapier@chromium.org>
* win: replace a while loop with a for loopJoshua Peraza2018-08-271-1/+1
| | | | | | | | | This is the recommended resolution to warning C4127. https://msdn.microsoft.com/en-us/library/6t66728h.aspx Change-Id: Ifcffe68e21d9a6383bb9aef07503cbb034caca19 Reviewed-on: https://chromium-review.googlesource.com/1191661 Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
* Fix debug build after 16e0852Joshua Peraza2018-08-182-7/+6
| | | | | | | | Also remove ranges_handler_ which is unused. Change-Id: I771bf4b5fc4410f0406bf26e1e405905b55389ab Reviewed-on: https://chromium-review.googlesource.com/1180587 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Make a parameter a const referenceJoshua Peraza2018-08-171-1/+1
| | | | | | Change-Id: I7d232dd9be3a03b5bd9f1d46c307d080fadf9116 Reviewed-on: https://chromium-review.googlesource.com/1179978 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Treat high_pc as an address for DW_FORM_GNU_addr_indexJoshua Peraza2018-08-171-1/+2
| | | | | | | | | | The high_pc is an address and has already been read from .debug_addr before being passed into FuncHandler::ProcessAttributeUnsigned. Bug:870908 Change-Id: I950098e360b5193f26bf767b8fa0a5f9d59e66ce Reviewed-on: https://chromium-review.googlesource.com/1178760 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Fix Windows client_tests GYP build after 88d8114fda3eMark Mentovai2018-08-151-0/+1
| | | | | | | | Bug: google-breakpad:770 Change-Id: I5539cda6053c39a11c354fba7f3e689ae02d3019 Reviewed-on: https://chromium-review.googlesource.com/1176126 Reviewed-by: Joshua Peraza <jperaza@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org>
* Fixed a typo introduced in revision 16e08520e6027df4bf1934abbfd5e1a088ffb69cGabriele Svelto2018-08-141-1/+1
| | | | | | | | BUG=769 Change-Id: I1e118fe31b4a4031275b8b49c4c1eb98745ce21a Reviewed-on: https://chromium-review.googlesource.com/1174571 Reviewed-by: Ted Mielczarek <ted.mielczarek@gmail.com>
* Add support for parsing the DW_AT_ranges attributesGabriele Svelto2018-08-1317-111/+577
| | | | | | | | | | | | | | | | This enables the DWARF reader to properly parse DW_AT_ranges attributes in compilation units and functions. Code covered by a function is now represented by a vector of ranges instead of a single contiguous range and DW_AT_ranges entries are used to populate it. All the code and tests that assumed functions to be contiguous entities has been updated to reflect the change. DW_AT_ranges attributes found in compilation units are parsed but no data is generated for them as it is not currently needed. BUG=754 Change-Id: I310391b525aaba0dd329f1e3187486f2e0c6d442 Reviewed-on: https://chromium-review.googlesource.com/1124721 Reviewed-by: Ted Mielczarek <ted.mielczarek@gmail.com>
* Set new ARM64 context flagsJoshua Peraza2018-08-061-9/+1
| | | | | | Change-Id: I4749459ec37b076b226fa734824380a7254f1064 Reviewed-on: https://chromium-review.googlesource.com/1163826 Reviewed-by: Mark Mentovai <mark@chromium.org>
* processor: Fix memory leak after 88d8114fJoshua Peraza2018-08-021-0/+4
| | | | | | | | | This was mistakenly deleted in https://chromium-review.googlesource.com/c/breakpad/breakpad/+/1155938/12 Change-Id: I95e5d84b36e2f89a7a364ee278ccb128b7d34b50 Reviewed-on: https://chromium-review.googlesource.com/1159525 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Define and use a a new MDRawContextARM64Joshua Peraza2018-08-0119-51/+325
| | | | | | | | | | | This struct matches the layout defined by Microsoft and replaces Breakpad's MDRawContextARM64_Old. This CL updates the processor to understand either the old or new structs, but clients continue to write the old structs. Change-Id: I8dedd9ddb2ec083b802723b9ac87beb18d98edbd Reviewed-on: https://chromium-review.googlesource.com/1155938 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Rename MDRawContextARM64 and its context flagsJoshua Peraza2018-08-0120-71/+71
| | | | | | | | | | This makes way for the addition of a struct matching Microsoft's layout for ARM64. Change-Id: I115f25290863e7438852691d1ec3c9324a42f7a5 Reviewed-on: https://chromium-review.googlesource.com/1152158 Reviewed-by: Mark Mentovai <mark@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org>
* mac: Fix broken xcode projectsJoshua Peraza2018-07-313-162/+169
| | | | | | Change-Id: I1cd8f0b0224c9b629dda720c11f6c081b175f8bd Reviewed-on: https://chromium-review.googlesource.com/1157121 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Add path_helper.cc and path_helper.h to dump_syms.xcodeproj.Ivan Penkov2018-07-241-0/+6
| | | | | | | | | | | Fixes a build break of dump_syms with Xcode. Patch provided by Hiroyuki Komatsu. Change-Id: I3bd3772060afee9f78dc99c75cd94f96a56c7617 Reviewed-on: https://chromium-review.googlesource.com/1144604 Reviewed-by: Joshua Peraza <jperaza@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org>
* ios: Fix build of exception_handler_no_machJoshua Peraza2018-07-091-1/+1
| | | | | | Change-Id: I2a9f85e78f6d3189f018824ad98e39af30d2ecf8 Reviewed-on: https://chromium-review.googlesource.com/1129465 Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
* Use hash_map and hash_set from __gnu_cxxJoshua Peraza2018-07-091-2/+2
| | | | | | Change-Id: Ia8521e5cfd8424c5dec247503532454eb8806c48 Reviewed-on: https://chromium-review.googlesource.com/1129203 Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
* iOS: disable using CFI in stackwalkingJoshua Peraza2018-07-062-6/+15
| | | | | | | | | | | dump_syms produces incomplete CFI info on iOS because it doesn't support converting compact unwind to Breakpad symbols. Attempting to use incomplete CFI can result in infinte stack traces. Bug: google-breakpad:764 Change-Id: Id042aa515d17928cb5503a79038607d95c56238d Reviewed-on: https://chromium-review.googlesource.com/1128252 Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
* Ignore duplicate module list entries.Lei Zhang2018-06-281-0/+16
| | | | | | | | BUG=chromium:838322 Change-Id: Ie19c1a39e49332b650a618758f925b127026bddf Reviewed-on: https://chromium-review.googlesource.com/1115437 Reviewed-by: Joshua Peraza <jperaza@chromium.org>
* Only do Android-specific adjustments for Android minidumps.Lei Zhang2018-06-282-5/+10
| | | | | | Change-Id: I33b1f988766f79b473127c4b56b1c81021b89631 Reviewed-on: https://chromium-review.googlesource.com/1115436 Reviewed-by: Joshua Peraza <jperaza@chromium.org>
* Refactor code out of MinidumpModuleList::Read().Lei Zhang2018-06-282-48/+60
| | | | | | | | Add a StoreRange() helper method and an IsDevAshmem() helper function. Change-Id: Iaec9dee1e08bd0155f1c33cfe9af722b0dcaef31 Reviewed-on: https://chromium-review.googlesource.com/1114188 Reviewed-by: Joshua Peraza <jperaza@chromium.org>
* Add an anonymous namespace in minidump.cc.Lei Zhang2018-06-281-41/+32
| | | | | | Change-Id: I1b064013b5d6253fe887245ebda7a861688d3cd6 Reviewed-on: https://chromium-review.googlesource.com/1114089 Reviewed-by: Will Harris <wfh@chromium.org>
* Fall back to the raw symbol name from DW_AT_MIPS_linkage_name when there is ↵Mike Hommey2018-06-191-0/+7
| | | | | | | | | | | | | | | | nothing else When DW_AT_MIPS_linkage_name doesn't demangle, breakpad currently throws the symbol completely, but in some cases, there is no DW_AT_name or DW_AT_abstract_origin to figure out a name, and the raw value from DW_AT_MIPS_linkage_name is still better than nothing. Fall back to that in when there is nothing else. R=ted@mielczarek.org Change-Id: I5cc7580244f2b99f5f1f279d09b904031cae1a37 Reviewed-on: https://chromium-review.googlesource.com/1082176 Reviewed-by: Ted Mielczarek <ted.mielczarek@gmail.com>
* Avoid endl when writing symbol filesAaron Dierking2018-05-301-9/+8
| | | | | | | | | | endl flushes output after each line. Using "\n" instead significantly improves I/O efficiency. Change-Id: If6a5549fc3613ca3a7c9a71838ec36c5b7a20580 Reviewed-on: https://chromium-review.googlesource.com/1077626 Reviewed-by: Ivan Penkov <ivanpe@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
* Add SEVERITY_CRITICAL to logging, that would help to suppress logs from the ↵Max Moroz2018-05-292-1/+14
| | | | | | | | | | | fuzz target. Follow-up CL will be https://chromium-review.googlesource.com/c/chromium/src/+/1073395 Bug: 846721 Change-Id: Ie9e6dc5c5ef6b035c414fbdc4f711f995b52f4d7 Reviewed-on: https://chromium-review.googlesource.com/1073394 Reviewed-by: Will Harris <wfh@chromium.org>
* Read Linux si_code in minidump_processor.Lei Zhang2018-04-132-4/+143
| | | | | | | | For common signals: SIGILL, SIGFPE, SIGSEGV, and SIGBUS. Change-Id: I80048f70445c3fa6accd548704c5700b3bed12a4 Reviewed-on: https://chromium-review.googlesource.com/1012589 Reviewed-by: Robert Sesek <rsesek@chromium.org>
* Initialize variables for MSANSergey Abbakumov2018-04-102-2/+2
| | | | | | | | | | The variables in the CL are not initialized. Even if it's safe not to initialize them here, MSAN doesn't know that. Bug: 394028 Change-Id: I597a7d76aa19d5789decd0f85150fa31c9655269 Reviewed-on: https://chromium-review.googlesource.com/1001573 Reviewed-by: Lei Zhang <thestig@chromium.org>
* Linux: Write out si_code for SIGBUS exceptions.Lei Zhang2018-04-035-11/+26
| | | | | | | | | Store the information in the exception record's exception_information field. Change-Id: Ie215cae2f070fdab63c3d05cc1bc4fb4b7b095fa Reviewed-on: https://chromium-review.googlesource.com/990799 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Add missing header for free functionTakuto Ikuta2018-03-271-0/+1
| | | | | | Change-Id: I8ff2dcb546849493f2883777895341e043e44fb3 Reviewed-on: https://chromium-review.googlesource.com/981965 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Allow minidump_dump to print module lists that would normally be rejectedTed Mielczarek2018-03-121-0/+3
| | | | | | | | | | | | | | | | | for being too long. We've seen some minidumps that fail to process because they contain a ridiculous number of modules (usually due to something leaking shm mappings, it looks like). They're annoying to investigate because even minidump_dump fails to load and print the module list. This patch makes minidump_dump effectively remove the limit on the number of modules it will load, so inspecting the dump by hand is possible. R=vapier@chromium.org Change-Id: I7a55387ca4aaad8664cd4d2651052da989366027 Reviewed-on: https://chromium-review.googlesource.com/957130 Reviewed-by: Mike Frysinger <vapier@chromium.org>
* Fixing incorrect include guard (missing #define)Daniel Bratell2018-02-231-0/+1
| | | | | | | | | Noticed while adding an include guard presubmit check in Chromium. Change-Id: I9e677412d881b32a58d695208045b575bb8f8be6 Reviewed-on: https://chromium-review.googlesource.com/934448 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Fix crash when an NSException is thrown.Adam Harrison2018-02-022-11/+10
| | | | | | | | old_handlers is zeroish whenever an NSException is thrown. This caused PROT_WRITE to never be set and resulted in an EXC_BAD_ACCESS when trying to set the handler to NULL. Change-Id: Ibb7da448204431c7602b1001f3a5216303c4c9d1 Reviewed-on: https://chromium-review.googlesource.com/899907 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Extend ifdef to include helper functionsLars Volker2018-01-311-2/+2
| | | | | | | | | | The previous change to fix compiling on Android < N forgot to include a helper in the ifdef, thus not fixing the problem. This change extends the ifdef to include all helpers used by the test. Change-Id: Ibb3030f54a81b5609a0b55ccef387a3cba22d088 Reviewed-on: https://chromium-review.googlesource.com/895240 Reviewed-by: Mike Frysinger <vapier@chromium.org>
* Remove barrier to fix Android build.Lars Volker2018-01-311-1/+3
| | | | | | | | | | | The unittest for #752 made use of pthread_barrier_t, which is not supported on Android. This change replaces the barrier code with a simple sleep, which proved sufficient to trigger the race. It only affects the test and does not affect the original fix for #752. Change-Id: I82c32cf00899176fa09089e716ed85850b8711e6 Reviewed-on: https://chromium-review.googlesource.com/895168 Reviewed-by: Mike Frysinger <vapier@chromium.org>
* Make breakpad build with -Wimplicit-fallthrough (on linux)Nico Weber2018-01-312-1/+19
| | | | | | | | | | | Fixes a bug where MD_EXCEPTION_CODE_MAC_PPC_ALTIVEC_ASSIST would unintentionally get two reason strings appended. Bug: 177475 Change-Id: I4957268328a242c7c75bbff8add98e9a48ba83ad Reviewed-on: https://chromium-review.googlesource.com/895705 Reviewed-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org>
* Do not use non-standard stdext::checked_array_iterator with libc++.Peter Collingbourne2018-01-181-1/+1
| | | | | | | Bug: chromium:801780 Change-Id: Id1b0b2330d7d609bda62869bcda5bb2f6fde12bd Reviewed-on: https://chromium-review.googlesource.com/872458 Reviewed-by: Mark Mentovai <mark@chromium.org>