commit | 6c8f80aa8b3ba8120c4158c069bb298c044dedf9 | [log] [tgz] |
---|---|---|
author | Ted Mielczarek <ted@mielczarek.org> | Tue Apr 05 13:34:20 2016 |
committer | Ted Mielczarek <ted@mielczarek.org> | Tue Apr 05 13:34:20 2016 |
tree | 2164203da75d894883e042368c34370f6c3af4c8 | |
parent | c1848484e1d2408076758073e5ae28689dbf01ef [diff] |
Switch the Linux minidump writer to use MDCVInfoELF for CV data. This preserves full build ids in minidumps, which are useful for tracking down the right version of system libraries from Linux distributions. The default build id produced by GNU binutils' ld is a 160-bit SHA-1 hash of some parts of the binary, which is exactly 20 bytes: https://sourceware.org/binutils/docs-2.26/ld/Options.html#index-g_t_002d_002dbuild_002did-292 The bulk of the changes here are to change the signatures of the FileID methods to use a wasteful_vector instead of raw pointers, since build ids can be of arbitrary length. The previous change that added support for this in the processor code preserved the return value of `Minidump::debug_identifier()` as the current `GUID+age` treatment for backwards-compatibility, and exposed the full build id from `Minidump::code_identifier()`, which was previously stubbed out for Linux dumps. This change keeps the debug ID in the `dump_syms` output the same to match. R=mark@chromium.org, thestig@chromium.org BUG= Review URL: https://codereview.chromium.org/1688743002 .
Breakpad is a set of client and server components which implement a crash-reporting system.
# Configure CXXFLAGS=-m32 CFLAGS=-m32 CPPFLAGS=-m32 ./configure # Build make # Test make check # Install make install
If you need to reconfigure your build be sure to run make distclean
first.
Get a copy of depot_tools repo. http://dev.chromium.org/developers/how-tos/install-depot-tools
Create a new directory for checking out the source code. mkdir breakpad && cd breakpad
Run the fetch
tool from depot_tools to download all the source repos. fetch breakpad
Make changes. Build and test your changes. For core code like processor use methods above. For linux/mac/windows, there are test targets in each project file.
Commit your changes to your local repo and upload them to the server. http://dev.chromium.org/developers/contributing-code e.g. git commit ... && git cl upload ...
You will be prompted for credential and a description.
At https://codereview.chromium.org/ you'll find your issue listed; click on it, and select Publish+Mail, and enter in the code reviewer and CC google-breakpad-dev@googlegroups.com