On Wed, Mar 30, 2011 at 07:39:31PM +0100, Peter Maydell wrote: > On 15 March 2011 11:56, Gleb Natapov <g...@redhat.com> wrote: > > Currently when rogue script kills QEMU process (using TERM/INT/HUP > > signal) it looks indistinguishable from system shutdown. Lets report > > that QEMU was killed and leave some clues about the killer identity. > > Unfortunately this patch causes qemu to segfault when killed > via ^C (at least on my Ubuntu maverick system). This is because > it registers a signal handler with sigaction, but then later > the SDL library is initialised and it reinstalls our handler > with plain old signal: > > ohandler = signal(SIGINT, SDL_HandleSIG); > if ( ohandler != SIG_DFL ) > signal(SIGINT, ohandler); > I fixed this in SDL upstream.
> This is clearly buggy but on the other hand SDL is pretty widely > deployed and it's the default QEMU video output method, so I think > we need to work around it :-( > > The most straightforward fix is to get the signal number from > argument one and not to bother printing the PID that killed us. > For debugging purposes pid is useful. We cam register signal handler after SDL is initialized though (if waiting for SDL update is not an option). -- Gleb.