Subject: Re: SIGTRAP for traced processes and COMPAT_MACH
To: Emmanuel Dreyfus <manu@netbsd.org>
From: Martin Husemann <martin@duskware.de>
List: tech-kern
Date: 11/29/2003 15:27:31
On Sat, Nov 29, 2003 at 03:08:33PM +0100, Emmanuel Dreyfus wrote:
> 3) the process destroys the port that catches memory faults exceptions
> Here, we would restore the signal mask to receive SIGSEGV? This
> anihiliate what the process requested in step 2, and we are not
> consistent with Darwin.  

Let me try to rephrase how I think it should work:

 - you have two emulation internal vectors, one for sigmask, one for
   exceptions
 - from this you calculate an effective sigmask and set it whenever one
   of those vectors is changed
 - when you catch a signal, you check the exception vector first and only
   handle that if it has this signal enabled

Am I missing something obvious?

Martin