aboutsummaryrefslogtreecommitdiff
path: root/src/tools
Commit message (Collapse)AuthorAgeFilesLines
* core2md: write error message with perrorMike Frysinger2019-03-041-1/+1
| | | | | | | | | | | | | | | | The current failure message omits the underlying errno. This can make diagnosing failures a bit difficult unless you run everything through strace. For example: $ core2md core /proc/self md $ core2md core /proc/self md Unable to generate minidump Now we get the errno details: Unable to generate minidump: File exists Change-Id: I67f30879868ce4a726d5d888ee8c0a4a316b5186 Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/1497660 Reviewed-by: Ted Mielczarek <ted.mielczarek@gmail.com>
* Add mac dump_syms support for arm64eJoshua Peraza2018-11-262-0/+8
| | | | | | 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>
* Define and use a a new MDRawContextARM64Joshua Peraza2018-08-012-11/+28
| | | | | | | | | | | 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-011-2/+2
| | | | | | | | | | 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-312-107/+118
| | | | | | 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>
* Fixed file extention for minidump_upload in tools_linux.gypiSyed Nisar Ul Haq2018-01-041-1/+1
| | | | | | | | Bug: Change-Id: I02ceca2ff7cb87bb2b8f0cf02d31f9ab6d46a8da src/tools/linux/tools_linux.gypi was using 'symupload/minidump_upload.m' whereas it should have been 'symupload/minidump_upload.cc' for linux. '.m' is for mac. Reviewed-on: https://chromium-review.googlesource.com/840622 Reviewed-by: Mike Frysinger <vapier@chromium.org>
* Update binaries with dump_syms changes to write new fieldMike Wittman2017-12-122-0/+0
| | | | | | | | | | Incorporates the changes in https://chromium.googlesource.com/breakpad/breakpad/+/897a12cd26ad01a5ef19474f23cfd0fbff4ea5a7 Bug: google-breakpad:751 Change-Id: I8c6de8c0477c0b1e6d7a65551ecb116c95e1a696 Reviewed-on: https://chromium-review.googlesource.com/820567 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Write field indicating multiple symbols at an address in dump_symsMike Wittman2017-12-116-18/+8
| | | | | | | | | | | Updates dump_syms to write the optional 'm' first field in FUNCTION and PUBLIC records to indicate that the address corresponds to more than one symbol. Bug: google-breakpad:751 Change-Id: I850b0122324ed5f9ec747aa92ba354a3126a7ef9 Reviewed-on: https://chromium-review.googlesource.com/820711 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Add optional field indicating multiple symbols at an addressMike Wittman2017-11-294-4/+15
| | | | | | | | | | | | | | | | | | Adds an optional 'm' as the first field in FUNCTION and PUBLIC records to indicate that the address corresponds to more than one symbol. Controls this by a command line flag for now to give symbol file users a chance to update. Also reduces the number of IDiaSymbols retained in memory to one per address. This reduces memory consumption by 8% when processing chrome.dll.pdb. Updates the processor to parse the new optional field. Bug: google-breakpad:751 Change-Id: I6503edaf057312d21a1d63d9c84e5a4fa019dc46 Reviewed-on: https://chromium-review.googlesource.com/773418 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Update test data for identical-code-folded symbol changesMike Wittman2017-11-286-6/+6
| | | | | | | Bug: google-breakpad:749 Change-Id: I2e56c8414c98c95372bd73811581cf1e98efe88e Reviewed-on: https://chromium-review.googlesource.com/791914 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Provide helper wrappers for basename(3) and dirname(3)Tobias Sargeant2017-10-182-7/+7
| | | | | | | | | | This hides the need to provide mutable C strings, and unifies existing basename calls and variations in a single location. Change-Id: Idfb449c47b1421f1a751efc3d7404f15f8b369ca Reviewed-on: https://chromium-review.googlesource.com/725731 Reviewed-by: Mark Mentovai <mark@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org>
* Fix MSVC build on 64-bitOrgad Shaneh2017-09-251-2/+2
| | | | | | | | | | | Mostly int<->size_t implicit conversions. Warning 4366 (The result of the unary '&' operator may be unaligned) appears in minidump.cc:907, but I don't know why. It looks aligned to me. Change-Id: I641942adc324f8f9832b20662083dc83498688a8 Reviewed-on: https://chromium-review.googlesource.com/637390 Reviewed-by: Mike Frysinger <vapier@chromium.org>
* Refresh refresh_binaries.batOrgad Shaneh2017-09-241-12/+8
| | | | | | Change-Id: I15687f35e560eb1e25bb4d7483c8f6fe5fdf210e Reviewed-on: https://chromium-review.googlesource.com/637391 Reviewed-by: Mike Frysinger <vapier@chromium.org>
* Dump MH_DYLINKER images in upload_system_symbols.Robert Sesek2017-03-303-4/+6
| | | | | | Change-Id: I18291efe211f88ae0607a9055d027b520ef13291 Reviewed-on: https://chromium-review.googlesource.com/462676 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Fix issues with Windows dump_syms_unittestJon Turney2017-03-177-2954/+2961
| | | | | | | | | | | | | | | | | | | | | | | | | | * Turn DumpSymsRegressionTest into a parameterized test so it's easier to see which test file is failing * Convert dump_syms_regtest.sym to DOS line endings, being careful to preserve the required spaces at the end of 'STACK WIN' lines * In test #4 (omap_reorder_bbs), since the .exe corresponding to the .pdb is not present, no INFO line is generated in the .sym file. Update .sym file. * Stop collecting stderr from dump_syms. Future work: perhaps it's worth collecting stderr to compare with a different file to verify that "Couldn't locate EXE or DLL file" is output when expected? * Regenerate testdata for test #5 (dump_syms_regtest64), which currently does not pass, seemingly due a mis-match in the PDB age between the .pdb file and the .sym file. Also add the .exe corresponding to the .pdb present, to provide CFI BUG= Change-Id: I54fab866437c9e1bad3a5534cef4fe4b6ae47cd2 Reviewed-on: https://chromium-review.googlesource.com/453178 Reviewed-by: Mike Frysinger <vapier@chromium.org>
* win: Set LargeAddressAware on symuploadScott Graham2017-02-281-0/+5
| | | | | | | | | | | | | | | | | | | | This was set manually on Chrome's built binary before https://codereview.chromium.org/2173533002 but wasn't added to the build file. After this change: c:\src\breakpad\src\src>dumpbin /headers tools\windows\symupload\Release\symupload.exe | grep large Application can handle large (>2GB) addresses This change only affects x86 builds. R=mark@chromium.org BUG=chromium:696911 Change-Id: I8f1bd5535af242edde51e70c60cf33b6170855ea Reviewed-on: https://chromium-review.googlesource.com/447780 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Appveyor CI for Windows MSVS buildJon Turney2017-02-131-0/+45
| | | | | | | | | | | | | | | | | | | | | | Add a .gyp file for building all windows tools, and add hook to run gyp to create corresponding .sln files. This doesn't try to build for platform:x64. This fails due to various errors caused by the assumption that size_t can be converted to an unsigned int without loss of information, which is not true on Windows x64 (LLP64), where size_t is 64 bits, but int is only 32 bits. There are test failures. client_tests failures are as described in [1]. dump_syms_unittest are as discussed in the description of [2]. [1] https://bugs.chromium.org/p/google-breakpad/issues/detail?id=520 [2] https://codereview.chromium.org/1782453003 BUG= Change-Id: I965244eb3746f87f30160fd0577e1cc9eb7a8b08 Reviewed-on: https://chromium-review.googlesource.com/441026 Reviewed-by: Mike Frysinger <vapier@chromium.org>
* windows: update gtest/gmock pathsMike Frysinger2017-02-111-3/+2
| | | | | | | | | The Windows build has rotted a bit with the gtest/gmock updates. Update all of the paths to fix things up again. Change-Id: Id67ce76abfd331c0543aa4bd1138e9cc13a18c75 Reviewed-on: https://chromium-review.googlesource.com/441584 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Revert "Several fixes for broken Mac build"Roman Margold2017-02-011-4/+5
| | | | This reverts commit 5c521532fc0a1b65f42c0d61d2da206eadf318b8.
* Several fixes for broken Mac buildRoman Margold2017-02-011-5/+4
|
* Change symbol upload message to include 'breakpad'Bruce Dawson2017-01-281-1/+1
| | | | | | | | | | | | | | | | The breakpad symbol uploader prints messages of this form: Uploaded symbols for windows-x86/eventlog_provider.dll.pdb/... This is confusing because many people see this message and assume that symbols are being uploaded to a symbol server. This changes the message to clarify what is happening. BUG=677226 Change-Id: Id6fdd8497d0cb97be43c4af010058aab9d84375c Reviewed-on: https://chromium-review.googlesource.com/434187 Reviewed-by: Mark Mentovai <mark@chromium.org>
* minidump-2-core: add more control over filenamesMike Frysinger2016-11-011-24/+93
| | | | | | | | | | | | | | | | | The code has been rewriting the location of the shared lib lookup completely which breaks normal sysroot usage with gdb. Split out the behavior into dedicated flags so people can opt into it. You can see examples of -i/-f in the usage() text. We also change the -S behavior so that it's no longer enabled by default -- if people want /var/lib/breakpad/, they can pass the -S flag explicitly. BUG=chromium:598947 Change-Id: Ic81726c27b4ad6c271c70696f2ac62798f07ccfb Reviewed-on: https://chromium-review.googlesource.com/402909 Reviewed-by: Mark Mentovai <mark@chromium.org>
* minidump-2-core: add an -o flag for controlling core outputMike Frysinger2016-10-261-24/+46
| | | | | | | | | | | Always writing to stdout makes it hard to debug, and hard to use in some script environments. Add an explicit -o flag to make it easier. BUG=chromium:598947 Change-Id: I79667d033c8bdc8412d3a44fe3557d65f704968f Reviewed-on: https://chromium-review.googlesource.com/403988 Reviewed-by: Mark Mentovai <mark@chromium.org>
* minidump-2-core: rewrite argument processingMike Frysinger2016-10-261-85/+134
| | | | | | | | | | | | | | | | This uses the same general framework as other minidump tools by using getopt to parse command line options, and then passing the parsed state around as a struct rather than via globals. This does change the --sobasedir flag to -S because we don't support getopt_long anywhere in the tree. Unfortunate, but better to match all the other breakpad tools which only accept short options. BUG=chromium:598947 Change-Id: I473081a29a8e3ef07a370848343f1a9e6681fd4e Reviewed-on: https://chromium-review.googlesource.com/402908 Reviewed-by: Mark Mentovai <mark@chromium.org>
* generate a repo manifest from the DEPS fileMike Frysinger2016-09-211-0/+167
| | | | | | | | | | This allows people to use repo to manage the checkout instead of gclient. This helps when you're used to the standard repo+gerrit workflow that the Android & Chromium OS projects use. Change-Id: I8b720e7995af2a1a8c9ce2ee9aa6c2638441b4a1 Reviewed-on: https://chromium-review.googlesource.com/379736 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Fixing the Xcode project for the Breakpad Mac crash reporter.Ivan Penkov2016-09-022-9/+23
| | | | | | | | | | | | Added new files elf_reader and corrected the references to dump_syms. Also some corrections to be able to build using a newer Xcode and SDK version (tested with Xcode 7.3, SDK 10.11). Patch provided by Thomas Schweitzer. BUG= Change-Id: I18bd3f8ce0c1d0ceb737aee2fa8305adfcc83139 Reviewed-on: https://chromium-review.googlesource.com/377746 Reviewed-by: Mark Mentovai <mark@chromium.org>
* This change allows compiling the google-breakpad code using a global ↵Ivan Penkov2016-08-301-17/+18
| | | | | | | | | | | | ::string class instead of std::string. For more details take a look at common/using_std_string.h BUG= Change-Id: I11f1ce697be23e13f12ea8f0468bbe02fa63c967 Reviewed-on: https://chromium-review.googlesource.com/378159 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Fixing some casts in order to be able to build with new Xcode and SDK ↵Ivan Penkov2016-08-302-4/+8
| | | | | | | | | | | | versions (tested with Xcode 7.3, SDK 10.11). Patch provided by Thomas Schweitzer. BUG= Change-Id: Ib35cdf766e73e4936e66f75474d83c2602f8ceb4 Reviewed-on: https://chromium-review.googlesource.com/378059 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Fail with a proper error message if input file is not found.Sylvain Defresne2016-08-091-0/+21
| | | | | | | | | | | | | | | | | | | Previously, if the input file was missing, the symupload tool on Mac would happily process, try to parse it (calling a method on nil) and fail when trying to create the payload to send to the server as one of the method raised a NSInvalidArgumentException when receiving a nil value. Change to code to instead check the file for existence which makes it easier to understand what is happening when part of the build system is misconfigured and invoke symupload without first creating the symbol file. BUG=449348 Change-Id: Icc0f08958114da4be0cbbd7a7c2aeef905bc0db1 Reviewed-on: https://chromium-review.googlesource.com/367260 Reviewed-by: Mark Mentovai <mark@chromium.org>
* Update symbol file documentation links.Ralph Giles2016-06-101-1/+1
| | | | | | | These locations have changed since the move from Google Code. R=ted.mielczarek@gmail.com BUG=https://bugzilla.mozilla.org/show_bug.cgi?id=1275630
* Replaced glibc version of elf.h with musl version of elf.h.Dave MacLachlan2016-05-121-2/+2
| | | | | | | | | Updated dump_syms xcode project and ran tests. BUG= R=vapier@chromium.org Review URL: https://codereview.chromium.org/1973113002 .
* Fixes up dump_syms build on OS X so it works with ELF.Dave MacLachlan2016-05-121-4/+20
| | | | | | | | | | | | | | | Adds elf.h header from glibc. Updates dwarf2reader.cc so it isn't comparing a unique_ptr against NULL. Moves from MacOS10.5 SDK to latest SDK for Xcode project. Moves from using gcc to clang for dump_syms tests. Disables warning about 'Missing Field In Structure Initializers' to temporarily work around https://bugs.chromium.org/p/google-breakpad/issues/detail?id=697. With this patch all tests form dump_syms pass again using Xcode 7.3 on Mac OS X 10.11. BUG= https://bugs.chromium.org/p/google-breakpad/issues/detail?id=696, https://bugs.chromium.org/p/google-breakpad/issues/detail?id=697 R=mark@chromium.org Review URL: https://codereview.chromium.org/1970903002 .
* Added an option (-i) to have dump_syms output header information only.David Yen2016-04-082-11/+30
| | | | | | | | | | | | | | | | | It is often helpful to check if a particular symbol file dumped by dump_syms actually matches a version of a binary file we have. The symbol output contains an ID which can be used to see if it matches the binary file. Unfortunately, this ID is internally calculated and not a standard hash of the binary file. Being able to output the header information only will allow users to determine whether their symbol file is up to date or not. R=jochen@chromium.org BUG=561447 Review URL: https://codereview.chromium.org/1864823002 . Patch from David Yen <dyen@chromium.org>.
* Refactor sym_upload in tools to extract code into common/linux, and minor fixesLi Yan2016-03-301-128/+3
| | | | | | | | | | | | to code calling libcurl. This change may be used to build a tool to dump and upload symbols with multi-thread. BUG= R=mmandlis@chromium.org CC=google-breakpad-dev@googlegroups.com Review URL: https://codereview.chromium.org/1842113002 .
* [mips64] Support for mips n64Mike Frysinger2016-02-061-1/+13
| | | | | | | | | | Adding remaining mips n64 support including stackwalker. BUG=None TEST=manually tested on Linux/Android R=vapier@chromium.org Review URL: https://codereview.chromium.org/1418453011 .
* Make minidump-2-core.cc build with -Wformat.Lei Zhang2016-01-061-1/+1
| | | | | | | | | | A=thakis@chromium.org BUG=chromium:574817 Original Review: https://codereview.chromium.org/1562983002/ R=thakis@chromium.org Review URL: https://codereview.chromium.org/1563043002 .
* Let breakpad build with -Wall on OS X and Linux.Lei Zhang2015-12-291-9/+0
| | | | | | | | | A=thakis@chromium.org Original Review: https://codereview.chromium.org/1550933002/ R=thakis@chromium.org Review URL: https://codereview.chromium.org/1554613002 .
* dump_syms: add a -v flagMike Frysinger2015-11-111-1/+16
| | | | | | | | | | | | dump_syms generates a lot of warnings. This CL puts logging behind a command line flag URL=https://android-review.googlesource.com/181558 BUG=b:25460551 BUG=google-breakpad:441 R=mark@chromium.org Review URL: https://codereview.chromium.org/1437763002 .
* Make dump_syms buildable under newer versions of Xcode.Boris Vidolov2015-11-101-0/+4
| | | | | | | R=mark@chromium.org BUG= Review URL: https://codereview.chromium.org/1438483002 .
* Support for multiple upload files in CrashReportSender/HTTPUploadDavid Major2015-10-063-6/+13
| | | | | | | | A=David Major <dmajor@mozilla.com> BUG=https://bugzilla.mozilla.org/show_bug.cgi?id=1048091 R=ted@mielczarek.org Review URL: https://bugzilla.mozilla.org/show_bug.cgi?id=1048091 .
* Fix Mac Breakpad host tools to build in Linux cross-compileTed Mielczarek2015-09-163-23/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're working on building our Firefox Mac builds as a Linux cross-compile (https://bugzilla.mozilla.org/show_bug.cgi?id=921040) and we need symbol dumping to work. This change ports the Mac dump_syms tool to build and work on Linux. I've tested it and it produces identical output to running the tool on Mac. The bulk of the work here was converting src/common/mac/dump_syms.mm and src/tools/mac/dump_syms/dump_syms_tool.mm from ObjC++ to C++ and removing their use of Foundation classes in favor of standard C/C++. This won't compile out-of-the-box on Linux, it requires some Mac system headers that are not included in this patch. I have those tentatively in a separate patch to land in Gecko (http://hg.mozilla.org/users/tmielczarek_mozilla.com/mc/rev/5fb8da23c83c), but I wasn't sure if you'd be interested in having them in the Breakpad tree. We could almost certainly pare down the set of headers included there, I didn't spend too much time trying to minimize them (we primarily just need the Mach-O structs and a few associated bits). I just realized that this patch is missing updating the XCode project files (ugh). I'll fix that up in a bit. R=mark@chromium.org BUG=https://bugzilla.mozilla.org/show_bug.cgi?id=543111 Review URL: https://codereview.chromium.org/1340543002 .
* add aarch64 support to minidump-2-corevapier@chromium.org2015-07-201-7/+34
| | | | | | | | | | | | | | | | | The thread info expects the struct names as they expect in asm/ptrace.h, but the header doesn't include that, it includes sys/user.h. Rename the reg structs to match that header. Rename the elf_siginfo to _elf_siginfo to avoid conflicting with the one in the sys/procfs.h. It is only used locally in one place, so we don't need to update any callers. Otherwise, drop in aarch64 support into the minidump-2-core file. BUG=chromium:334368 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1474 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Reconfigured options for sym_upload to not treat h and ? flags as invalid ↵ivanpe@chromium.org2015-06-221-0/+5
| | | | | | | | | | | | options. I'm submitting this on behalf of Andrew Liu. R=mmandlis@chromium.org Review URL: https://codereview.chromium.org/1196733004 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1462 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Support object files larger than 2**32.erikchen@chromium.org2015-04-221-2/+2
| | | | | | | Reviewed at https://breakpad.appspot.com/7834002/#ps340001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1453 4c0a9323-5329-0410-9bdc-e9ce6186880e
* [MIPS]: Use mcontext_t structure for MIPSrmcilroy@chromium.org2015-04-211-14/+32
| | | | | | | | | | | | | | This change removes user_regs_struct and user_fpregs_struct structures for mips and uses mcontext_t instead. R=fdegans@chromium.org, mark@chromium.org, rmcilroy@chromium.org Review URL: https://breakpad.appspot.com/3744002 Patch from Gordana Cmiljanovic <Gordana.Cmiljanovic@imgtec.com>. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1452 4c0a9323-5329-0410-9bdc-e9ce6186880e
* MIPS64: Initial MIPS64 related change.mark@chromium.org2015-04-151-0/+2
| | | | | | | | | | | With this change Breakpad can be compiled for MIPS64, but it is not yet functional. Patch by Gordana Cmiljanovic <Gordana.Cmiljanovic@imgtec.com> Review URL: https://breakpad.appspot.com/6824002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1446 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add microdump files to project.jessicag.feedback@gmail.com2014-12-111-0/+6
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1411 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove pointers from serialized file formatmdempsky@chromium.org2014-12-111-8/+15
| | | | | | | | | BUG=breakpad:621 R=thestig@chromium.org Review URL: https://breakpad.appspot.com/1764002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1410 4c0a9323-5329-0410-9bdc-e9ce6186880e