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