This is the mail archive of the archer@sourceware.org mailing list for the Archer project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: C++ Exceptions Status


A FYI,

On Wednesday 06 August 2008 15:01:17, Ian Lance Taylor wrote:
> Phil Muldoon <pmuldoon@redhat.com> writes:

> Microsoft Windows uses a different system which gcc does not currently
> support, known as SEH.

SEH exceptions are OS supported exceptions.  Microsoft's compilers
implement c++ exceptions on top of these, gcc doesn't.

 - SEH on x86 is stack based, similar in spirit to sjlj.  I had confirmed
   a couple of month's back, that MSFT's debugger can step successfully
   and transparently from a throw to a catch.  We're really way behind
   here.  :-)

 - SEH on x86_64, and RISC machines running WinCE (ARM, SH, MIPS)
   is "zero-cost", table based, similar in spirit to dwarf
   unwinding.

As Ian noted, SEH isn't supported by gcc yet.

gcc supports both sjlj and dwarf c++ exceptions on cygwin/mingw.

Dwarf unwinding doesn't work right currently when crossing foreign
frames (exceptions thrown from user installed callbacks in
system apis, which are common in Win32 apps), so, by default
(at least until somewhat recently), mingw/cygwin gcc builds
default to sjlj.

-- 
Pedro Alves


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]