On Mon, Jan 26, 2009 at 10:43 PM, Michael Ash <michael....@gmail.com> wrote:
> Actually it's pretty easy to avoid exiting due to EXC_BAD_ACCESS, just
> install a signal handler for SIGSEGV.

In my experience, setting a handler for SIGSEGV is problematic because
the crash reporter still starts up, so its best to handle the Mach
exception directly instead of resorting to Unix signals (which seem to
be emulated under Mach, rather than a native feature).

The Crash Reporter is not always what you want, because illegal memory
access is not always a fatal error in all cases, for example some
language VMs use memory protection to implement funky GC algorithms.

Anyway, to answer Oleg's question, I have some BSD-licensed code which
demonstrates this. Once you figure out the somewhat-hairy Mach APIs,
it is pretty straightforward:

http://gitweb.factorcode.org/gitweb.cgi?p=factor/.git;a=blob_plain;f=vm/mach_signal.c;hb=HEAD

Slava
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to