OLD | NEW |
1 Google Breakpad for Android | 1 Google Breakpad for Android |
2 =========================== | 2 =========================== |
3 | 3 |
4 This document explains how to use the Google Breakpad client library | 4 This document explains how to use the Google Breakpad client library |
5 on Android, and later generate valid stack traces from the minidumps | 5 on Android, and later generate valid stack traces from the minidumps |
6 it generates. | 6 it generates. |
7 | 7 |
8 Note that this release only supports ARM-based Android systems. | 8 Note that this release only supports ARM-based Android systems. |
9 We're working on adding support for x86 and MIPS, but that might | 9 We're working on adding support for x86 and MIPS, but that might |
10 require an udpated NDK release. | 10 require an udpated NDK release. |
11 | 11 |
| 12 IMPORTANT: Currently, Minidump generation only works when a signal is |
| 13 handled by Breakpad. I.e. calling WriteMinidump() directly |
| 14 at runtime will not work. |
12 | 15 |
13 I. Building the client library: | 16 I. Building the client library: |
14 =============================== | 17 =============================== |
15 | 18 |
16 The Android client is built as a static library that you can | 19 The Android client is built as a static library that you can |
17 link into your own Android native code. There are two ways to | 20 link into your own Android native code. There are two ways to |
18 build it: | 21 build it: |
19 | 22 |
20 I.1. Building with ndk-build: | 23 I.1. Building with ndk-build: |
21 ----------------------------- | 24 ----------------------------- |
(...skipping 23 matching lines...) Expand all Loading... |
45 All you need to do is configure your build with the right 'host' | 48 All you need to do is configure your build with the right 'host' |
46 value, and disable the processor and tools, as in: | 49 value, and disable the processor and tools, as in: |
47 | 50 |
48 $GOOGLE_BREAKPAD_PATH/configure --host=arm-linux-androideabi \ | 51 $GOOGLE_BREAKPAD_PATH/configure --host=arm-linux-androideabi \ |
49 --disable-processor \ | 52 --disable-processor \ |
50 --disable-tools | 53 --disable-tools |
51 make -j4 | 54 make -j4 |
52 | 55 |
53 The library will be under src/client/linux/libbreakpad_client.a | 56 The library will be under src/client/linux/libbreakpad_client.a |
54 | 57 |
| 58 You can also use 'make check' to run the test suite on a connected |
| 59 Android device. This requires the Android 'adb' tool to be in your |
| 60 path. |
55 | 61 |
56 II. Using the client library in Android: | 62 II. Using the client library in Android: |
57 ======================================== | 63 ======================================== |
58 | 64 |
59 The usage instructions are very similar to the Linux ones that are | 65 The usage instructions are very similar to the Linux ones that are |
60 found at http://code.google.com/p/google-breakpad/wiki/LinuxStarterGuide | 66 found at http://code.google.com/p/google-breakpad/wiki/LinuxStarterGuide |
61 | 67 |
62 1/ You need to include "client/linux/handler/exception_handler.h" from a C++ | 68 1/ You need to include "client/linux/handler/exception_handler.h" from a C++ |
63 source file. | 69 source file. |
64 | 70 |
65 2/ If you're not using ndk-build, you also need to: | 71 2/ If you're not using ndk-build, you also need to: |
66 | 72 |
67 - add $GOOGLE_BREAKPAD_PATH to your compiler include path | 73 - add the following to your compiler include search paths: |
| 74 $GOOGLE_BREAKPAD_PATH/src |
| 75 $GOOGLE_BREAKPAD_PATH/src/common/android/include |
| 76 |
68 - add -llog to your linker flags | 77 - add -llog to your linker flags |
69 | 78 |
70 Note that ndk-build does that for your automatically. | 79 Note that ndk-build does that for your automatically. |
71 | 80 |
72 3/ Keep in mind that there is no /tmp directory on Android. | 81 3/ Keep in mind that there is no /tmp directory on Android. |
73 | 82 |
74 If you use the library from a regular Android applications, specify a | 83 If you use the library from a regular Android applications, specify a |
75 path under your app-specific storage directory. An alternative is to | 84 path under your app-specific storage directory. An alternative is to |
76 store them on the SDCard, but this requires a specific permission. | 85 store them on the SDCard, but this requires a specific permission. |
77 | 86 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 | 120 |
112 minidump_stackwalk $MINIDUMP_FILE $PROJECT_PATH/symbols | 121 minidump_stackwalk $MINIDUMP_FILE $PROJECT_PATH/symbols |
113 | 122 |
114 Note that various helper scripts can be found on the web to automate these | 123 Note that various helper scripts can be found on the web to automate these |
115 steps. | 124 steps. |
116 | 125 |
117 IV. Verifying the Android build library: | 126 IV. Verifying the Android build library: |
118 ======================================== | 127 ======================================== |
119 | 128 |
120 If you modify Google Breakpad and want to check that it still works correctly | 129 If you modify Google Breakpad and want to check that it still works correctly |
121 on Android, please run the android/run-test-program.sh script which will do all | 130 on Android, please run the android/run-checks.sh script which will do all |
122 necessary verifications for you. This includes: | 131 necessary verifications for you. This includes: |
123 | 132 |
124 - Rebuilding the full host package | 133 - Rebuilding the full host binaries. |
125 - Rebuilding the client library with configure/make | 134 - Rebuilding the full Android binaries with configure/make. |
126 - Rebuilding the client library with ndk-build | 135 - Rebuilding the client library unit tests, and running them on a device. |
127 - Building, installing and running a test crasher program on a device | 136 - Rebuilding the client library with ndk-build. |
| 137 - Building, installing and running a test crasher program on a device. |
128 - Extracting the corresponding minidump, dumping the test program symbols | 138 - Extracting the corresponding minidump, dumping the test program symbols |
129 and generating a stack trace. | 139 and generating a stack trace. |
130 - Checking the stack trace for valid source locations. | 140 - Checking the generated stack trace for valid source locations. |
131 | 141 |
132 For more details, please run: | 142 For more details, please run: |
133 | 143 |
134 android/run-test-program.sh --help-all | 144 android/run-checks.sh --help-all |
OLD | NEW |