X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Sat, 18 Jul 2009 00:20:02 -0400 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: fun? with libsigsegv Message-ID: <20090718042002.GA29467@ednor.casa.cgf.cx> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On Fri, Jul 17, 2009 at 10:55:13PM +0000, Eric Blake wrote: >Eric Blake byu.net> writes: >>Of course, given the code, that meant I wasn't using libsigsegv like I >>thought I was. So, with my typo corrected, I'm (unfortunately) still >>seeing libsigsegv interference: >> >>$ ./foo fclose -1, errno 9 Aborted (core dumped) > >Even more depressing - this looks like a regression. The same STC, >compiled with libsigsegv under cygwin 1.5, works in that environment. > >And I'm not sure what to do in gdb to try and get more useful >information: AFAICT, the libsigsegv handler is overriding the "myfault" stuff in Cygwin and is causing a fault for something that should be ignored. The "fault" in this case is coming from our old friend verifyable_object_isvalid. We expect faults there and they are supposed to be ignored. The regression from 1.5 is because this didn't cause a fault in 1.5 so it looks like something changed in newlib. Looking at libsigsegv's code, I don't think it is being smart enough about Cygwin. It isn't clear to me why sigaltstack is needed here since I don't see anything special happening with the stack. It looks like you could modify libsigsegv to just avoid trying to do anything with the signal stack and you could use Cygwin's signal handlers directly. cgf -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple