xref: /aosp_15_r20/external/google-breakpad/README.md (revision 9712c20fc9bbfbac4935993a2ca0b3958c5adad2)
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: [![Build+Test CI](https://github.com/google/breakpad/actions/workflows/build-test-ci.yml/badge.svg)](https://github.com/google/breakpad/actions/workflows/build-test-ci.yml) [![Build status](https://ci.appveyor.com/api/projects/status/eguv4emv2rhq68u2?svg=true)](https://ci.appveyor.com/project/vapier/breakpad)
12*9712c20fSFrederick Mayle* Coverage [![Coverity Status](https://scan.coverity.com/projects/9215/badge.svg)](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