qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Re: [PATCH, RFC] Replace assert(0) with abort() or cpu


From: Jamie Lokier
Subject: Re: [Qemu-devel] Re: [PATCH, RFC] Replace assert(0) with abort() or cpu_abort()
Date: Tue, 16 Mar 2010 17:52:34 +0000
User-agent: Mutt/1.5.13 (2006-08-11)

Paolo Bonzini wrote:
> On 03/15/2010 07:36 PM, Markus Armbruster wrote:
> >Please don't tell me that user emulators make abort() return.  abort()
> >is declared __noreturn__, and the optimizer may well rely on that.
> 
> If the user programs make a "signal (SIGABRT, SIG_IGN)" call, I suppose 
> abort() will return.

On Linux, man abort says:

       If  the SIGABRT signal is ignored, or caught by a handler that returns,
       the abort() function will still terminate the process.  It does this by
       restoring the default disposition for SIGABRT and then raising the sig‐
       nal for a second time.

However I have a suspicious that I've seen abort() return on some
other OS in the distant past, maybe SunOS 4.

I wouldn't rely on abort() always terminating the process on all OSes.

-- Jamie






reply via email to

[Prev in Thread] Current Thread [Next in Thread]