X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Message-ID: <4C35F33E.60603@gmail.com> Date: Thu, 08 Jul 2010 16:48:14 +0100 From: Dave Korn User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: gcc4: throwing exception from signal handler References: <346D8CF793D04BC99A972949F9555CC3 AT amber> In-Reply-To: <346D8CF793D04BC99A972949F9555CC3@amber> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: 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 08/07/2010 14:01, Don Ward wrote: > I would like to be able to catch certain signals (SIGSEGV and SIGSYS) > and throw a C++ exception (to be caught in a try/catch construct). As a > simple example: > Am I misunderstanding how this should work or doing something wrong? Or > is this a problem with Cygwin or gcc? Throwing exceptions from a signal handler is a can of worms that requires support from both the compiler and the C runtime. I was working on adding this support for the distro package of gcc-4.5 before I had to go AWOL a couple of weeks ago; it requires building the Cygwin DLL with EH tables, and adding support in the last-chance stack unwinder in libgcc that is able to unwind past our sigfe/sigbe stuff. I'll be back in the Cygwin/GCC world starting next week. cheers, DaveK -- 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