|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | - | - |
| .github/ | | 03-May-2024 | - | 18 | 8 |
| android/ | | 03-May-2024 | - | 1,473 | 833 |
| autotools/ | | 03-May-2024 | - | 13,987 | 10,970 |
| docs/ | | 03-May-2024 | - | 3,126 | 2,682 |
| m4/ | | 03-May-2024 | - | 9,177 | 8,183 |
| scripts/ | | 03-May-2024 | - | 96 | 63 |
| src/ | | 03-May-2024 | - | 470,290 | 402,799 |
| .gitignore | D | 03-May-2024 | 2.6 KiB | 90 | 81 |
| .travis.yml | D | 03-May-2024 | 1.2 KiB | 35 | 25 |
| AUTHORS | D | 03-May-2024 | 22 | 2 | 1 |
| Android.bp | D | 03-May-2024 | 10.1 KiB | 299 | 289 |
| Android.mk | D | 03-May-2024 | 95 | 3 | 0 |
| ChangeLog | D | 03-May-2024 | 0 | | |
| DEPS | D | 03-May-2024 | 3.2 KiB | 85 | 77 |
| INSTALL | D | 03-May-2024 | 15.4 KiB | 371 | 289 |
| LICENSE | D | 03-May-2024 | 2.3 KiB | 51 | 41 |
| METADATA | D | 03-May-2024 | 572 | 21 | 20 |
| MODULE_LICENSE_BSD | D | 03-May-2024 | 0 | | |
| Makefile.am | D | 03-May-2024 | 58.9 KiB | 1,577 | 1,421 |
| Makefile.in | D | 03-May-2024 | 945.4 KiB | 8,968 | 8,189 |
| NEWS | D | 03-May-2024 | 0 | | |
| OWNERS | D | 03-May-2024 | 69 | 5 | 4 |
| PRESUBMIT.cfg | D | 03-May-2024 | 94 | 5 | 3 |
| README.ANDROID | D | 03-May-2024 | 4.6 KiB | 140 | 90 |
| README.md | D | 03-May-2024 | 3 KiB | 83 | 59 |
| aclocal.m4 | D | 03-May-2024 | 46.7 KiB | 1,305 | 1,185 |
| appveyor.yml | D | 03-May-2024 | 1.2 KiB | 43 | 30 |
| breakpad-client.pc.in | D | 03-May-2024 | 312 | 11 | 9 |
| breakpad.pc.in | D | 03-May-2024 | 298 | 11 | 9 |
| configure | D | 03-May-2024 | 264.5 KiB | 9,232 | 7,577 |
| configure.ac | D | 03-May-2024 | 9.4 KiB | 272 | 248 |
| default.xml | D | 03-May-2024 | 1.3 KiB | 44 | 33 |
README.ANDROID
1Google Breakpad for Android
2===========================
3
4This document explains how to use the Google Breakpad client library
5on Android, and later generate valid stack traces from the minidumps
6it generates.
7
8This release supports ARM, x86 and MIPS based Android systems.
9This release requires NDK release r11c or higher.
10
11I. Building the client library:
12===============================
13
14The Android client is built as a static library that you can
15link into your own Android native code. There are two ways to
16build it:
17
18I.1. Building with ndk-build:
19-----------------------------
20
21If you're using the ndk-build build system, you can follow
22these simple steps:
23
24 1/ Include android/google_breakpad/Android.mk from your own
25 project's Android.mk
26
27 This can be done either directly, or using ndk-build's
28 import-module feature.
29
30 2/ Link the library to one of your modules by using:
31
32 LOCAL_STATIC_LIBRARIES += breakpad_client
33
34NOTE: The client library requires a C++ STL implementation,
35 which you can select with APP_STL in your Application.mk
36
37 It has been tested succesfully with both STLport and GNU libstdc++
38
39
40I.2. Building with a standalone Android toolchain:
41--------------------------------------------------
42
43All you need to do is configure your build with the right 'host'
44value, and disable the processor and tools, as in:
45
46 $GOOGLE_BREAKPAD_PATH/configure --host=arm-linux-androideabi \
47 --disable-processor \
48 --disable-tools
49 make -j4
50
51The library will be under src/client/linux/libbreakpad_client.a
52
53You can also use 'make check' to run the test suite on a connected
54Android device. This requires the Android 'adb' tool to be in your
55path.
56
57II. Using the client library in Android:
58========================================
59
60The usage instructions are very similar to the Linux ones that are
61found at https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/linux_starter_guide.md
62
631/ You need to include "client/linux/handler/exception_handler.h" from a C++
64 source file.
65
662/ If you're not using ndk-build, you also need to:
67
68 - add the following to your compiler include search paths:
69 $GOOGLE_BREAKPAD_PATH/src
70 $GOOGLE_BREAKPAD_PATH/src/common/android/include
71
72 - add -llog to your linker flags
73
74 Note that ndk-build does that for your automatically.
75
763/ Keep in mind that there is no /tmp directory on Android.
77
78 If you use the library from a regular Android applications, specify a
79 path under your app-specific storage directory. An alternative is to
80 store them on the SDCard, but this requires a specific permission.
81
82For a concrete example, see the sample test application under
83android/sample_app. See its README for more information.
84
85
86III. Getting a stack trace on the host:
87=======================================
88
89This process is similar to other platforms, but here's a quick example:
90
911/ Retrieve the minidumps on your development machine.
92
932/ Dump the symbols for your native libraries with the 'dump_syms' tool.
94 This first requires building the host version of Google Breakpad, then
95 calling:
96
97 dump_syms $PROJECT_PATH/obj/local/$ABI/libfoo.so > libfoo.so.sym
98
993/ Create the symbol directory hierarchy.
100
101 The first line of the generated libfoo.so.sym will have a "MODULE"
102 entry that carries a hexadecimal version number, e.g.:
103
104 MODULE Linux arm D51B4A5504974FA6ECC1869CAEE3603B0 test_google_breakpad
105
106 Note: The second field could be either 'Linux' or 'Android'.
107
108 Extract the version number, and a 'symbol' directory, for example:
109
110 $PROJECT_PATH/symbols/libfoo.so/$VERSION/
111
112 Copy/Move your libfoo.sym file there.
113
1144/ Invoke minidump_stackwalk to create the stack trace:
115
116 minidump_stackwalk $MINIDUMP_FILE $PROJECT_PATH/symbols
117
118Note that various helper scripts can be found on the web to automate these
119steps.
120
121IV. Verifying the Android build library:
122========================================
123
124If you modify Google Breakpad and want to check that it still works correctly
125on Android, please run the android/run-checks.sh script which will do all
126necessary verifications for you. This includes:
127
128 - Rebuilding the full host binaries.
129 - Rebuilding the full Android binaries with configure/make.
130 - Rebuilding the client library unit tests, and running them on a device.
131 - Rebuilding the client library with ndk-build.
132 - Building, installing and running a test crasher program on a device.
133 - Extracting the corresponding minidump, dumping the test program symbols
134 and generating a stack trace.
135 - Checking the generated stack trace for valid source locations.
136
137For more details, please run:
138
139 android/run-checks.sh --help-all
140
README.md
1# Breakpad
2
3Breakpad is a set of client and server components which implement a
4crash-reporting system.
5
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)
11* Tests: [![Build Status](https://travis-ci.org/google/breakpad.svg?branch=master)](https://travis-ci.org/google/breakpad) [![Build status](https://ci.appveyor.com/api/projects/status/eguv4emv2rhq68u2?svg=true)](https://ci.appveyor.com/project/vapier/breakpad)
12* Coverage [![Coverity Status](https://scan.coverity.com/projects/9215/badge.svg)](https://scan.coverity.com/projects/google-breakpad)
13
14## Getting started (from master)
15
161. First, [download depot_tools](http://dev.chromium.org/developers/how-tos/install-depot-tools)
17 and ensure that they’re in your `PATH`.
18
192. 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
263. Run the `fetch` tool from depot_tools to download all the source repos.
27
28 ```sh
29 fetch breakpad
30 cd src
31 ```
32
334. 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
485. Optionally, run tests.
49
50 ```sh
51 make check
52 ```
53
546. Optionally, install the built libraries
55
56 ```sh
57 make install
58 ```
59
60If you need to reconfigure your build be sure to run `make distclean` first.
61
62To 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
64dependent repos are up-to-date.
65
66## To request change review
67
681. Follow the steps above to get the source and build it.
69
702. Make changes. Build and test your changes.
71 For core code like processor use methods above.
72 For linux/mac/windows, there are test targets in each project file.
73
743. Commit your changes to your local repo and upload them to the server.
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
794. 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.
83