Re: Mach-exception forwarding changed on Leopard?
Re: Mach-exception forwarding changed on Leopard?
- Subject: Re: Mach-exception forwarding changed on Leopard?
- From: Terry Lambert <email@hidden>
- Date: Fri, 13 Jun 2008 04:41:46 -0700
The crash reporter exception mechanim was changed in Leopard to reduce
false reports from normally terminating processes and processes
receiving normally fatal signals which have handlers that would let
them recover successfully (e.g. Implemtation of memory mapping in a
SIGSEGV or stack management on guard pages in a SIGBUS).
You are likely looking at the wrong exception type, and still sitting
on the exception for the signal path rather than the one for
crashreporter.
I'm not sure this is documented anywhere but the xnu source code,
which is published.
-- Terr
On Jun 13, 2008, at 2:58 AM, ward mcfarland <email@hidden> wrote:
On 10.4, the mechanism works great. Not on 10.5, however,
the application just "hangs", not processing any messages
anymore (Activity Monitor says application not answering).
From the sampling, it looks like the exception-handling
thread is stuck in catch_exception_raise_*() and does not
want to continue.
I implement my own exception handler and found a similar thing. The
first time, it works fine. Subsequent tries hung (even force quit
took 2 or 3 tries to get it to quit).
A little investigation and some luck showed me that sigprocmask was
turned ON for all signals except sigkill and sigstop. The opposite
of what the man page says and opposite to prior behavior, when this
mask was not changed.
Manually turning off blocking in my exception handler did the trick.
I am pretty sure you need to do the same thing.
-- w
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden