wangkaichimera/google-breakpad

BreakpadCreate() fails on Mac OS X 10.10 Yosemite

Opened this issue · 2 comments

What steps will reproduce the problem?

I have the following code:

BreakpadRef breakpad = nullptr;
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSDictionary *plist = [[NSBundle mainBundle] infoDictionary];
if (plist) {
  breakpad = BreakpadCreate(plist);
}
[pool release];

On OS 10.9, breakpad is non-null after this procedure. However, with OS 10.10, 
it is null.

Using a debugger, I found out that initialization fails in 
src/client/mac/Framework/OnDemandServer.mm on line 92:

kr = bootstrap_subset(bootstrap_port, self_task, &bootstrap_subset_port);

After executing this line, kr should be 0 (BOOTSTRAP_SUCCESS), however, it is 
17 (KERN_INVALID_RIGHT).


What version of the product are you using? On what operating system?

r1393 on Mac OS X 10.10 (14A388b) and Xcode 6.0.1 (6A317).

Original issue reported on code.google.com by tiwocph...@gmail.com on 20 Oct 2014 at 2:11

This appears to have been fixed here: https://crrev.com/1375
They have added in-process crash reporting, to be used in Yosemite until 
bpoop(crashpad) gets finished.

Original comment by tomstof...@gmail.com on 10 Nov 2014 at 10:29

The workaround is this one:

"Mac: Add support for in-process crash reporting to Breakpad.", 
https://code.google.com/p/google-breakpad/source/detail?r=1375

I found https://bugzilla.mozilla.org/show_bug.cgi?id=1052807 most interesting, 
as it tells a bit of the background story. It looks to me as if Breakpad (at 
least the Mac version) will be fully abandoned and replaced by Crashpad 
(https://code.google.com/p/crashpad/).

Original comment by tiwocph...@gmail.com on 11 Nov 2014 at 1:40