Andy Bonventre | 0ff15b4 | 2015-09-22 17:29:52 -0400 | [diff] [blame] | 1 | # Breakpad |
| 2 | |
| 3 | Breakpad is a set of client and server components which implement a |
| 4 | crash-reporting system. |
| 5 | |
Mike Frysinger | 081cbd6 | 2016-01-14 13:32:20 -0500 | [diff] [blame] | 6 | * [Homepage](https://chromium.googlesource.com/breakpad/breakpad/) |
| 7 | * [Documentation](https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/) |
| 8 | * [Bugs](https://bugs.chromium.org/p/google-breakpad/) |
| 9 | * Discussion/Questions: [google-breakpad-discuss@googlegroups.com](https://groups.google.com/d/forum/google-breakpad-discuss) |
| 10 | * Developer/Reviews: [google-breakpad-dev@googlegroups.com](https://groups.google.com/d/forum/google-breakpad-dev) |
Jon Turney | d4676b8 | 2017-02-10 14:32:44 +0000 | [diff] [blame] | 11 | * Tests: [](https://travis-ci.org/google/breakpad) [](https://ci.appveyor.com/project/vapier/breakpad) |
Mike Frysinger | 83a5552 | 2016-06-21 11:14:28 -0400 | [diff] [blame] | 12 | * Coverage [](https://scan.coverity.com/projects/google-breakpad) |
Mike Frysinger | 081cbd6 | 2016-01-14 13:32:20 -0500 | [diff] [blame] | 13 | |
Ted Mielczarek | 8b7b286 | 2016-06-03 13:32:14 -0400 | [diff] [blame] | 14 | ## Getting started (from master) |
Andy Bonventre | 0ff15b4 | 2015-09-22 17:29:52 -0400 | [diff] [blame] | 15 | |
Ted Mielczarek | 8b7b286 | 2016-06-03 13:32:14 -0400 | [diff] [blame] | 16 | 1. First, [download depot_tools](http://dev.chromium.org/developers/how-tos/install-depot-tools) |
Mark Mentovai | f5638b8 | 2016-07-22 14:42:46 -0400 | [diff] [blame] | 17 | and ensure that they’re in your `PATH`. |
Ted Mielczarek | 8b7b286 | 2016-06-03 13:32:14 -0400 | [diff] [blame] | 18 | |
| 19 | 2. Create a new directory for checking out the source code (it must be named |
| 20 | breakpad). |
| 21 | |
| 22 | ```sh |
| 23 | mkdir breakpad && cd breakpad |
| 24 | ``` |
| 25 | |
| 26 | 3. Run the `fetch` tool from depot_tools to download all the source repos. |
| 27 | |
| 28 | ```sh |
| 29 | fetch breakpad |
| 30 | cd src |
| 31 | ``` |
| 32 | |
| 33 | 4. Build the source. |
| 34 | |
| 35 | ```sh |
| 36 | ./configure && make |
| 37 | ``` |
| 38 | |
| 39 | You can also cd to another directory and run configure from there to build |
| 40 | outside the source tree. |
| 41 | |
| 42 | This will build the processor tools (`src/processor/minidump_stackwalk`, |
| 43 | `src/processor/minidump_dump`, etc), and when building on Linux it will |
| 44 | also build the client libraries and some tools |
| 45 | (`src/tools/linux/dump_syms/dump_syms`, |
| 46 | `src/tools/linux/md2core/minidump-2-core`, etc). |
| 47 | |
| 48 | 5. Optionally, run tests. |
| 49 | |
| 50 | ```sh |
| 51 | make check |
| 52 | ``` |
| 53 | |
| 54 | 6. Optionally, install the built libraries |
| 55 | |
| 56 | ```sh |
| 57 | make install |
| 58 | ``` |
Andy Bonventre | 0ff15b4 | 2015-09-22 17:29:52 -0400 | [diff] [blame] | 59 | |
| 60 | If you need to reconfigure your build be sure to run `make distclean` first. |
| 61 | |
Ted Mielczarek | 8b7b286 | 2016-06-03 13:32:14 -0400 | [diff] [blame] | 62 | To update an existing checkout to a newer revision, you can |
| 63 | `git pull` as usual, but then you should run `gclient sync` to ensure that the |
| 64 | dependent repos are up-to-date. |
Andy Bonventre | 0ff15b4 | 2015-09-22 17:29:52 -0400 | [diff] [blame] | 65 | |
Ted Mielczarek | 8b7b286 | 2016-06-03 13:32:14 -0400 | [diff] [blame] | 66 | ## To request change review |
Andy Bonventre | 0ff15b4 | 2015-09-22 17:29:52 -0400 | [diff] [blame] | 67 | |
Ted Mielczarek | 8b7b286 | 2016-06-03 13:32:14 -0400 | [diff] [blame] | 68 | 1. Follow the steps above to get the source and build it. |
Andy Bonventre | 0ff15b4 | 2015-09-22 17:29:52 -0400 | [diff] [blame] | 69 | |
Ted Mielczarek | 8b7b286 | 2016-06-03 13:32:14 -0400 | [diff] [blame] | 70 | 2. Make changes. Build and test your changes. |
Andy Bonventre | 0ff15b4 | 2015-09-22 17:29:52 -0400 | [diff] [blame] | 71 | For core code like processor use methods above. |
| 72 | For linux/mac/windows, there are test targets in each project file. |
| 73 | |
Ted Mielczarek | 8b7b286 | 2016-06-03 13:32:14 -0400 | [diff] [blame] | 74 | 3. Commit your changes to your local repo and upload them to the server. |
Andy Bonventre | 0ff15b4 | 2015-09-22 17:29:52 -0400 | [diff] [blame] | 75 | http://dev.chromium.org/developers/contributing-code |
| 76 | e.g. `git commit ... && git cl upload ...` |
| 77 | You will be prompted for credential and a description. |
| 78 | |
Andrew Bonventre | f7be481 | 2016-07-21 15:50:13 -0400 | [diff] [blame] | 79 | 4. At https://chromium-review.googlesource.com/ you'll find your issue listed; |
| 80 | click on it, then “Add reviewer”, and enter in the code reviewer. Depending |
| 81 | on your settings, you may not see an email, but the reviewer has been |
| 82 | notified with google-breakpad-dev@googlegroups.com always CC’d. |