[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: libguile with C++ exceptions
From: |
Florian Weimer |
Subject: |
Re: libguile with C++ exceptions |
Date: |
25 Mar 2001 20:21:47 +0200 |
User-agent: |
Gnus/5.090001 (Oort Gnus v0.01) Emacs/20.7 |
Isaac Kar-Keung To <address@hidden> writes:
> Right, but I wonder whether this is the "right" solution. Frankly I think
> it's not. The direct cause of the problem is of course that a C compiler
> won't generate the tables required for C++ exception handling.
This is not quite correct. The GNU C Compiler can generate stack
unwinding information, and it's even generated by default on some
architectures lacking a frame pointer (e.g. x86-84). You might want
to try to compile the Guile libraries using '-fexceptions'.
> This means that upon throwing an exception, the exception handling
> routine will fail to find an exception table and thus must stop
> exception handling, sending itself SIGABRT and dump core.
It's possible to implement exception handling without resorting to
stack unwinding (early Watcom C++ compilers did this, and GNAT still
does on the majority of platforms). In addition, some stack unwinders
can process stack frames without unwinding information (provided there
is a frame pointer, they advance to the next frame).
I think earlier GNU C++ implementations could cope with non-C++ stack
frames without, but 2.95.x can't. :-(