particulars of catching EXC_CRASH
particulars of catching EXC_CRASH
- Subject: particulars of catching EXC_CRASH
- From: Neal Sidhwaney <email@hidden>
- Date: Wed, 3 Feb 2010 14:36:25 -0800
Hi
I have a successful exception handler that can catch mach exceptions like EXC_BAD_ACCESS, EXC_ARITHMETIC, etc. However, if I register a port for receiving exception messages for EXC_CRASH, the thread waiting on the exception port never wakes up and, moreover, the process hangs in an unkillable state.
I noticed that the default exception handler for EXC_CRASH is different than other exception types( on Leopard & SL) - the other exceptions have MACH_PORT_NULL as their exception ports, whereas EXC_CRASH has a port in the task's port namespace, and uses MACH_EXCEPTION_CODES|EXCEPTION_STATE_IDENTITY as the behavior, and X86_THREAD_STATE as the flavor. Even mimicking these parameters(in case there was some in kernel dependency on this when delivering EXC_CRASH; but I did not see anything that would indicate this in the exception_deliver() exception_triage() kernel methods) did not work.
Is there something special that exception handlers need to do when handling EXC_CRASH?
Thanks,
Neal
_______________________________________________
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