zh423328 / google-breakpad

Automatically exported from code.google.com/p/google-breakpad
Other
0 stars 0 forks source link

On Mac/iOS, ExceptionHandler::ForwardException() should handle the exception having MACH_EXCEPTION_CODES set #551

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
On OS X versions >= 10.5 and iOS versions >= 6 (likely earlier iOS versions as 
well), exception handlers have MACH_EXCEPTION_CODES set. 
ExceptionHandler::ForwardException() does not handle this case specifically, so 
it goes into the default case of its switch statement (i.e., the exception is 
not forwarded).

On iOS, exception forwarding occurs when Breakpad has not been able to 
successfully write the minidump (otherwise, Breakpad exits after writing the 
minidump). In this case, there appears to be a valid handler to forward the 
exception to. Here is some representative information for the found handler:
Mask: 4e
Port: 14083
Behavior: 80000001
Flavor: 5

This handler does not appear to be our own, which in this case had port 16391 
and appeared to be successfully uninstalled prior to the forwarding of the 
exception.

Handling this case will be non-trivial, as there is no user stub for 
mach_exception_raise() (so it would have to be generated via mig).

Original issue reported on code.google.com by blundell@chromium.org on 21 Nov 2013 at 3:57