1
- # Breakpad for Cygwin/ MinGW
1
+ # Breakpad for MinGW and more
2
2
3
- [ ![ Build status] ( https://ci.appveyor.com/api/projects/status/xp2os1r0m569a470/branch/pecoff-dwarf-on-git-20160304?svg=true )] ( https://ci.appveyor.com/project/jon-turney/google-breakpad )
3
+ Google Breakpad with added support for Gygwin/MinGW, maintained for the
4
+ [ Dæmon game engine] ( https://github.com/DaemonEngine/Daemon ) and the
5
+ [ Unvanquished game] ( https://unvanquished.net ) .
6
+
7
+ - Upstream for the Dæmon branch: https://github.com/DaemonEngine/breakpad
8
+ - Bug tracker for the Dæmon branch: https://github.com/DaemonEngine/breakpad/issues
9
+
10
+ ## Dæmon Breakpad
11
+
12
+ The Dæmon Breakpad adds MinGW support to Google Breakpad, based on jon.turney's patches,
13
+ with merged Google upstream adding support for DWARF5 debugging information format. This
14
+ retains the support for systems already supported by Google Breakpad upstream.
15
+
16
+ This provides:
4
17
5
- google-breakpad with added support for Cygwin/MinGW:
6
18
- A ` dump_syms ` tool which can read DWARF debugging information from PE/COFF executables.
7
19
- The breakpad crash-reporting client libraries built using Makefiles rather than MSVC solutions.
8
20
9
21
## Compiling
10
22
11
23
### Preparation
12
24
13
- Run the fetch-externals script to fetch submodules in the DEPS file (e.g the gyp and gtest dependencies).
14
- (The upsteam repository is meant to be checked out using Chromium's ` depot_tools ` , which does this for you)
25
+ Optional: Run the fetch-externals script to fetch submodules in the DEPS file (e.g the gyp and gtest dependencies).
26
+ (The Google upsteam repository is meant to be checked out using Chromium's ` depot_tools ` , which does this for you).
27
+ This is not needed to build Breakpad.
15
28
16
- ```
29
+ ``` sh
17
30
./fetch-externals
18
31
```
19
32
20
33
Run autoreconf to generate ./configure
21
34
22
- ````
35
+ ``` sh
23
36
autoreconf -fvi
24
- ````
37
+ ```
25
38
26
39
### Compiling
27
40
28
- See README.orig.md
29
-
30
- ````
41
+ ``` sh
31
42
./configure && make
32
- ````
43
+ ```
33
44
34
45
will produce ` dump_syms.exe ` , ` minidump_dump.exe ` , ` minidump_stackwalk.exe ` , ` libbreakpad.a ` ,
35
46
and for MinGW ` libcrash_generation_client.a ` , ` libcrash_generation_server.a ` , ` crash_generation_app.exe `
@@ -40,14 +51,14 @@ See [Getting started with breakpad](https://chromium.googlesource.com/breakpad/b
40
51
41
52
### Producing and installing symbols
42
53
43
- ````
54
+ ``` sh
44
55
dump_syms crash_generation_app.exe > crash_generation_app.sym
45
56
FILE=` head -1 crash_generation_app.sym | cut -f5 -d' ' `
46
57
BUILDID=` head -1 crash_generation_app.sym | cut -f4 -d' ' `
47
58
SYMBOLPATH=/symbols/${FILE} /${BUILDID} /
48
59
mkdir -p ${SYMBOLPATH}
49
60
mv crash_generation_app.sym ${SYMBOLPATH}
50
- ````
61
+ ```
51
62
52
63
### Generating a minidump file
53
64
@@ -60,9 +71,9 @@ A small test application demonstrating out-of-process dumping called
60
71
61
72
### Processing the minidump to produce a stack trace
62
73
63
- ````
74
+ ``` sh
64
75
minidump_stackwalk blah.dmp /symbols/
65
- ````
76
+ ```
66
77
67
78
## Issues
68
79
@@ -94,85 +105,13 @@ editions of Visual Studio 2013), and (ii) the DIA SDK uses ATL.
94
105
An alternate PDB parser is available at https://github.com/luser/dump_syms , but
95
106
that also needs some work before it can be built with MinGW.
96
107
97
- # Breakpad
108
+ # Upstream Breakpad
98
109
99
110
Breakpad is a set of client and server components which implement a
100
111
crash-reporting system.
101
112
102
- * [ Homepage] ( https://chromium.googlesource.com/breakpad/breakpad/ )
103
- * [ Documentation] ( https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/ )
104
- * [ Bugs] ( https://bugs.chromium.org/p/google-breakpad/ )
113
+ * Homepage: https://chromium.googlesource.com/breakpad/breakpad/
114
+ * Documentation: https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/
115
+ * Bugs: https://bugs.chromium.org/p/google-breakpad/
105
116
* Discussion/Questions: [ google-breakpad-discuss@googlegroups.com ] ( https://groups.google.com/d/forum/google-breakpad-discuss )
106
117
* Developer/Reviews: [ google-breakpad-dev@googlegroups.com ] ( https://groups.google.com/d/forum/google-breakpad-dev )
107
- * 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 )
108
- * Coverage [ ![ Coverity Status] ( https://scan.coverity.com/projects/9215/badge.svg )] ( https://scan.coverity.com/projects/google-breakpad )
109
-
110
- ## Getting started (from master)
111
-
112
- 1 . First, [ download depot_tools] ( http://dev.chromium.org/developers/how-tos/install-depot-tools )
113
- and ensure that they’re in your ` PATH ` .
114
-
115
- 2 . Create a new directory for checking out the source code (it must be named
116
- breakpad).
117
-
118
- ``` sh
119
- mkdir breakpad && cd breakpad
120
- ```
121
-
122
- 3. Run the ` fetch` tool from depot_tools to download all the source repos.
123
-
124
- ` ` ` sh
125
- fetch breakpad
126
- cd src
127
- ` ` `
128
-
129
- 4. Build the source.
130
-
131
- ` ` ` sh
132
- ./configure && make
133
- ` ` `
134
-
135
- You can also cd to another directory and run configure from there to build
136
- outside the source tree.
137
-
138
- This will build the processor tools (` src/processor/minidump_stackwalk` ,
139
- ` src/processor/minidump_dump` , etc), and when building on Linux it will
140
- also build the client libraries and some tools
141
- (` src/tools/linux/dump_syms/dump_syms` ,
142
- ` src/tools/linux/md2core/minidump-2-core` , etc).
143
-
144
- 5. Optionally, run tests.
145
-
146
- ` ` ` sh
147
- make check
148
- ` ` `
149
-
150
- 6. Optionally, install the built libraries
151
-
152
- ` ` ` sh
153
- make install
154
- ` ` `
155
-
156
- If you need to reconfigure your build be sure to run ` make distclean` first.
157
-
158
- To update an existing checkout to a newer revision, you can
159
- ` git pull` as usual, but then you should run ` gclient sync` to ensure that the
160
- dependent repos are up-to-date.
161
-
162
- # # To request change review
163
-
164
- 1. Follow the steps above to get the source and build it.
165
-
166
- 2. Make changes. Build and test your changes.
167
- For core code like processor use methods above.
168
- For linux/mac/windows, there are test targets in each project file.
169
-
170
- 3. Commit your changes to your local repo and upload them to the server.
171
- http://dev.chromium.org/developers/contributing-code
172
- e.g. ` git commit ... && git cl upload ...`
173
- You will be prompted for credential and a description.
174
-
175
- 4. At https://chromium-review.googlesource.com/ you' ll find your issue listed;
176
- click on it, then “Add reviewer”, and enter in the code reviewer. Depending
177
- on your settings, you may not see an email, but the reviewer has been
178
- notified with google-breakpad-dev@googlegroups.com always CC’d.
0 commit comments