This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


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

C++ exceptions under i386 PC platform


Hi,

Has anyone had any luck getting C++ exceptions going for the i386 target ?
>From post http://sources.redhat.com/ml/ecos-discuss/2001-06/msg00898.html it
looks like this work is certainly in the pipeline. If so, I'm willing to
wait a while.

Basically, I've tried translating the suggestions from previous posts about
what to do (which were based on ARM) into the i386 world but without much
success.

What happens when an exception is thown is when gcc is checking it's list of
objects in find_fde (frame.c) called from __frame_state_for (frame.c) called
from __throw (libgcc2.c) it can't find the one for the exception being
thrown, returns 0 and I fall into '__terminate' as the default action. At
this point, I fall off the edge of the world due to insufficient knowledge
about what's supposed to happen. The header for except.c does provide some
interesting background but I'm having trouble relating it to eCos. Frames
are apparently registered using __register_frame but who's supposed to call
this and when isn't clear to me.

As recommended, I tried building a posix system with gcc configured with
enable-threads=posix but this requires pthread.h (from eCos) and attempting
include this in the gcc build resulted in a nasty mess.

Any pointers/suggestions much appreciated.

As Rosimildo said, it would appear this isn't a picnic in the park but if I
could learn from other peoples bruises that would be great :-;

Cheers,

John Gumb
Software Engineer
Ridgeway Systems and Software
Tel +44  118 9381108 (direct dial)
Tel +44  118 9351111 (switchboard)
Fax +44  118 9354444
email jgumb@ridgeway-sys.com
web www.ridgeway-sys.com
 


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