sentry_breakpad 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
-
|