sentry_breakpad 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +124 -5
- data/lib/sentry_breakpad/breakpad_parser.rb +1 -2
- data/lib/sentry_breakpad/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e30ef493060a397277ce84f8cb3fab1be6bd1e89
|
4
|
+
data.tar.gz: 654f5782d69f66c9bd3197b2da79817a839b267a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba93fc35a757bd0171cf8eec7e7af234e37972faaa48c8edfb1641e5e23b20fdaac3a6ac90ecf479d009b26a4d1d32361a209944c0061945030419162c75ad9d
|
7
|
+
data.tar.gz: 96a284c2e1b430256cf60f744253dda5fc46b1a09182c6f215fed211c3dacc995331009d18466baefaff648f6887510659fa60964b860be4389e4f734fc3d385
|
data/README.md
CHANGED
@@ -1,8 +1,95 @@
|
|
1
1
|
# SentryBreakpad
|
2
2
|
|
3
|
-
|
3
|
+
So you've integrated [Google
|
4
|
+
Breakpad](https://chromium.googlesource.com/breakpad/breakpad/) into your C/C++
|
5
|
+
application, and that gives you nicely formatted reports, such as
|
4
6
|
|
5
|
-
|
7
|
+
```
|
8
|
+
Operating system: Windows NT
|
9
|
+
6.1.7601 Service Pack 1
|
10
|
+
CPU: x86
|
11
|
+
GenuineIntel family 6 model 70 stepping 1
|
12
|
+
4 CPUs
|
13
|
+
|
14
|
+
Crash reason: EXCEPTION_ACCESS_VIOLATION_READ
|
15
|
+
Crash address: 0xfffffffffee1dead
|
16
|
+
|
17
|
+
Thread 0 (crashed)
|
18
|
+
0 ETClient.exe!QString::~QString() [qstring.h : 992 + 0xa]
|
19
|
+
eip = 0x00d74e3a esp = 0x0018d1b4 ebp = 0x0018d1b8 ebx = 0x01ad947c
|
20
|
+
esi = 0x05850000 edi = 0x058277f8 eax = 0xfee1dead ecx = 0xfee1dead
|
21
|
+
edx = 0x00000004 efl = 0x00210282
|
22
|
+
Found by: given as instruction pointer in context
|
23
|
+
1 ETClient.exe!QString::`scalar deleting destructor'(unsigned int) + 0xf
|
24
|
+
eip = 0x00d9161f esp = 0x0018d1c0 ebp = 0x0018d1c4
|
25
|
+
Found by: call frame info
|
26
|
+
2 ETClient.exe!buggyFunc() [machinelistitem.cpp : 181 + 0x1d]
|
27
|
+
eip = 0x00daaea3 esp = 0x0018d1cc ebp = 0x0018d1dc
|
28
|
+
Found by: call frame info
|
29
|
+
3 ETClient.exe!MachineListItem::on_EditButtonClicked() [machinelistitem.cpp : 197 + 0x5]
|
30
|
+
eip = 0x00da5dd4 esp = 0x0018d1e4 ebp = 0x0018d250
|
31
|
+
Found by: call frame info
|
32
|
+
4 ETClient.exe!MachineListItem::qt_static_metacall(QObject *,QMetaObject::Call,int,void * *) [moc_machinelistitem.cpp : 115 + 0x8]
|
33
|
+
eip = 0x00de14a1 esp = 0x0018d258 ebp = 0x0018d27c
|
34
|
+
Found by: call frame info
|
35
|
+
5 ETClient.exe!QMetaObject::activate(QObject *,int,int,void * *) + 0x4cf
|
36
|
+
eip = 0x0135329f esp = 0x0018d284 ebp = 0x00000000
|
37
|
+
Found by: call frame info
|
38
|
+
|
39
|
+
Thread 1
|
40
|
+
0 ntdll.dll + 0x2019d
|
41
|
+
eip = 0x7744019d esp = 0x03bffb64 ebp = 0x03bffcf8 ebx = 0x7745c4f8
|
42
|
+
esi = 0x003d9148 edi = 0x00000000 eax = 0x00000000 ecx = 0x00000000
|
43
|
+
edx = 0x00000000 efl = 0x00000246
|
44
|
+
Found by: given as instruction pointer in context
|
45
|
+
1 kernel32.dll + 0x1338a
|
46
|
+
eip = 0x75d3338a esp = 0x03bffd00 ebp = 0x03bffd04
|
47
|
+
Found by: previous frame's frame pointer
|
48
|
+
2 ntdll.dll + 0x39882
|
49
|
+
eip = 0x77459882 esp = 0x03bffd0c ebp = 0x03bffd44
|
50
|
+
Found by: previous frame's frame pointer
|
51
|
+
3 ntdll.dll + 0x39855
|
52
|
+
eip = 0x77459855 esp = 0x03bffd4c ebp = 0x03bffd5c
|
53
|
+
Found by: previous frame's frame pointer
|
54
|
+
|
55
|
+
Thread 2
|
56
|
+
0 ntdll.dll + 0x21f86
|
57
|
+
eip = 0x77441f86 esp = 0x00d4f770 ebp = 0x00d4f8d0 ebx = 0x00010003
|
58
|
+
esi = 0x00000002 edi = 0x003dc490 eax = 0x00000001 ecx = 0x00000000
|
59
|
+
edx = 0x00000000 efl = 0x00000246
|
60
|
+
Found by: given as instruction pointer in context
|
61
|
+
1 kernel32.dll + 0x1338a
|
62
|
+
eip = 0x75d3338a esp = 0x00d4f8d8 ebp = 0x00d4f8dc
|
63
|
+
Found by: previous frame's frame pointer
|
64
|
+
2 ntdll.dll + 0x39882
|
65
|
+
eip = 0x77459882 esp = 0x00d4f8e4 ebp = 0x00d4f91c
|
66
|
+
Found by: previous frame's frame pointer
|
67
|
+
3 ntdll.dll + 0x39855
|
68
|
+
eip = 0x77459855 esp = 0x00d4f924 ebp = 0x00d4f934
|
69
|
+
Found by: previous frame's frame pointer
|
70
|
+
|
71
|
+
Loaded modules:
|
72
|
+
0x00d70000 - 0x01b39fff ETClient.exe ??? (main)
|
73
|
+
0x67070000 - 0x671a8fff libeay32.dll 1.0.2.4
|
74
|
+
0x71020000 - 0x71090fff msvcp120.dll 12.0.21005.1
|
75
|
+
0x71370000 - 0x713bbfff ssleay32.dll 1.0.2.4
|
76
|
+
0x72470000 - 0x724effff uxtheme.dll 6.1.7600.16385
|
77
|
+
0x726e0000 - 0x726f2fff dwmapi.dll 6.1.7601.18917
|
78
|
+
0x73160000 - 0x7316dfff RpcRtRemote.dll 6.1.7601.17514
|
79
|
+
0x731e0000 - 0x7321afff rsaenh.dll 6.1.7600.16385
|
80
|
+
0x73250000 - 0x7329efff webio.dll 6.1.7601.17725
|
81
|
+
0x732a0000 - 0x732f7fff winhttp.dll 6.1.7601.17514
|
82
|
+
0x73380000 - 0x73396fff cryptsp.dll 6.1.7601.18741
|
83
|
+
```
|
84
|
+
|
85
|
+
All well and good, but it's hard to reliably keep track of these reports... what bugs
|
86
|
+
are new, which should be resolved, which are happening the most...?
|
87
|
+
|
88
|
+
Then you think you could use [Sentry](https://getsentry.com) to help you track your
|
89
|
+
Breakpad reports.
|
90
|
+
|
91
|
+
This gem makes it easy to parse Breakpad reports like the above and format them into
|
92
|
+
Sentry events.
|
6
93
|
|
7
94
|
## Installation
|
8
95
|
|
@@ -22,7 +109,40 @@ Or install it yourself as:
|
|
22
109
|
|
23
110
|
## Usage
|
24
111
|
|
25
|
-
|
112
|
+
Simply feed the content of a breakpad report to `SentryBreakpad.send_from_string`
|
113
|
+
|
114
|
+
```ruby
|
115
|
+
my_breakpad_report = "Operating system: Windows NT\n 6.1.7601 Service Pack 1..."
|
116
|
+
SentryBreakpad.send_from_string(my_breakpad_report)
|
117
|
+
```
|
118
|
+
|
119
|
+
If you want, you can also use `SentryBreakpad.send_from_file` instead, to read a
|
120
|
+
breakpad report from the disk, and send it to Sentry:
|
121
|
+
|
122
|
+
```ruby
|
123
|
+
SentryBreakpad.send_from_file('/path/to/report')
|
124
|
+
```
|
125
|
+
|
126
|
+
Both functions take an extra argument to allow you to add extra information to the
|
127
|
+
generated Sentry event, e.g.:
|
128
|
+
|
129
|
+
```ruby
|
130
|
+
SentryBreakpad.send_from_file('/path/to/report', {
|
131
|
+
'release' => '12.4',
|
132
|
+
'extra' => {
|
133
|
+
'time_running' => 25632
|
134
|
+
},
|
135
|
+
'tags' => {
|
136
|
+
'build_type' => 'release'
|
137
|
+
}
|
138
|
+
})
|
139
|
+
```
|
140
|
+
|
141
|
+
The exhaustive list of all the extra information that can be passed can be found
|
142
|
+
at https://github.com/getsentry/raven-ruby/blob/0.15.3/lib/raven/event.rb#L31-L49.
|
143
|
+
|
144
|
+
Please note that all of the above assumes that `Raven` has been properly configured
|
145
|
+
(we use `Raven.client` to send the generated events)
|
26
146
|
|
27
147
|
## Development
|
28
148
|
|
@@ -32,10 +152,9 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
32
152
|
|
33
153
|
## Contributing
|
34
154
|
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
155
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/wk8/sentry_breakpad.
|
36
156
|
|
37
157
|
|
38
158
|
## License
|
39
159
|
|
40
160
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
41
|
-
|