Re: ECX_BAD_ACCESS again
Re: ECX_BAD_ACCESS again
- Subject: Re: ECX_BAD_ACCESS again
- From: Jonas Maebe <email@hidden>
- Date: Sat, 5 Jan 2008 21:48:13 +0100
On 05 Jan 2008, at 14:07, Robert Bielik wrote:
Jonas Maebe wrote:
One warning about this: for i386 (Intel 32 bit), passing arguments
is not going to work like that in C because the default calling
convention there passes everything on the stack (while ours is
fastcall, where the first three parameters are passed in
registers). You may be able to declare your handler in gcc also as
fastcall to work around this, but I don't know by heart how this is
done. Or you may simply not pass any parameters at all.
Ok, nice! As I know exactly where and when the exception might be
thrown, I don't need to pass any params. As an aside, is there a way
to register signal handlers scope-wise? That is, only to intercept a
signal within a specific scope? Even though the library call is the
only place where this happens, I guess that signal handling is
global for the entire process?
Signal handlers are always global for the entire process. You can use
pthread_sigmask to mask certain signals in certain threads, but the
handler itself and whether or not it's installed is always the same
for all threads. Additionally, synchronous signals such as a SIGSEGV
should always be sent to the thread in which it was triggered.
Jonas
_______________________________________________
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