>> I did this, and I've pasted the output below. At first glance, the >> exceptions all seem to be the same (or at least, all have the same address >> of 0x17158c80). I'm not entirely sure how to interpret the rest of the >> action there. One thing that leaps out is that there seem to be >> personalities involved: GNUCOBJC and GNUCC++. The code that throws this >> exception is a .mm file, i.e., Objective-C++, with a mix of ObjC and C++. > > Aha! That might be it, and might be enough to come up with a reduced test > case. When you throw the exception, it’s an ObjC exception. When you throw > it through an ObjC++ stack frame, it’s transformed into a C++ exception and > passed to the C++ personality function, but only when the cleanup is run for > that frame. I suspect that the ObjC personality function is not correctly > handling the transformation back to an ObjC exception for the catch.
Thanks, David! I will try to make a reduced test case, based on this. I'll start with a simple program that throws an ObjC exception in an NS_HANDLER, where the whole thing resides in a .mm file. BTW, I've enabled native exceptions here. I will let you guys know when I've got something. Thank you again for your help, David _______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
