M68k C++ Exceptions working!

Charles-Antoine Gauthier charles.gauthier at nrc.ca
Wed Jan 12 02:13:59 UTC 2000


Now all we need to figure out is whether exception handling is
multithread safe and for which configurations, if any. I don't quite
know what needs to be done to test this. A simple test would be to force
a context switch from the exception handler to another higher priority
thread that throws an exception, but that may not prove that the __throw
functions and its friends are multithread safe.

Any suggestions?

Joel Sherrill wrote:
> 
> Congratulations!!!
> 
> Eric Norum wrote:
> >
> > I don't exactly know what I did differently, but:
> 
> When linkcmds get involved, this is how I feel too.
> 
> If you could figure out what needs to change, I will be
> happy to propagate the changes into other linkcmds. :)
> 
> I PROCLAIM THAT THE M68k is NOW ELF!!!!
> 
> > ======================================================
> > GLOBAL: Hey I'm in base class constructor number 1 for 0x18f54.
> > GLOBAL: Hey I'm in base class constructor number 2 for 0x18f60.
> > GLOBAL: Hey I'm in derived class constructor number 3 for 0x18f60.
> >
> > *** CONSTRUCTOR/DESTRUCTOR TEST ***
> > LOCAL: Hey I'm in base class constructor number 4 for 0x52d84.
> > LOCAL: Hey I'm in base class constructor number 5 for 0x52d78.
> > LOCAL: Hey I'm in base class constructor number 6 for 0x52d6c.
> > LOCAL: Hey I'm in base class constructor number 7 for 0x52d60.
> > LOCAL: Hey I'm in derived class constructor number 8 for 0x52d60.
> > IO Stream not tested
> > LOCAL: Hey I'm in derived class destructor number 8 for 0x52d60.
> > Derived class - Instantiation order 8
> > LOCAL: Hey I'm in base class destructor number 7 for 0x52d60.
> > Instantiation order 8
> > LOCAL: Hey I'm in base class destructor number 6 for 0x52d6c.
> > Instantiation order 6
> > LOCAL: Hey I'm in base class destructor number 5 for 0x52d78.
> > Instantiation order 5
> > LOCAL: Hey I'm in base class destructor number 4 for 0x52d84.
> > Instantiation order 5
> > *** END OF CONSTRUCTOR/DESTRUCTOR TEST ***
> >
> > *** TESTING C++ EXCEPTIONS ***
> >
> > foo_function() catch block called:
> >    < foo_function() throw this exception  >
> > Success catching a char * exception
> > foo_function() re-throwing execption...
> > throw an instance based exception
> > RtemsException
> > raised=File:../../../../../../../rtems-current/c/src/tests/samples/cdtest/main.cc,
> > Line:200, Error=55
> > Success catching RtemsException...
> > RtemsException --->
> > File:../../../../../../../rtems-current/c/src/tests/samples/cdtest/main.cc,
> > Line:200, Error=55
> > Exceptions are working properly.
> > Global Dtors should be called after this line....
> > GLOBAL: Hey I'm in derived class destructor number 3 for 0x18f60.
> > Derived class - Instantiation order 3
> > GLOBAL: Hey I'm in base class destructor number 2 for 0x18f60.
> > Instantiation order 3
> > GLOBAL: Hey I'm in base class destructor number 1 for 0x18f54.
> > Instantiation order 1
> > =====================================================================
> >
> > So it looks like it's all working properly -- at least as far as I can
> > tell.
> > Thanks very much for all your patient assistance with this.
> >
> > --
> > Eric Norum                                 eric at cls.usask.ca
> > Canadian Light Source                      Phone: (306) 966-6308
> > University of Saskatchewan                 FAX:   (306) 966-6058
> > Saskatoon, Canada.
> 
> --
> Joel Sherrill, Ph.D.             Director of Research & Development
> joel at OARcorp.com                 On-Line Applications Research
> Ask me about RTEMS: a free RTOS  Huntsville AL 35805
>    Support Available             (256) 722-9985

-- 
Charles-Antoine Gauthier
Institute for Information Technology  Institut de technologie de l'information
National Research Council of Canada   Conseil national de recherches du Canada



More information about the users mailing list