sylvain wrote:
> Hi,
>
> the program below does not work as I would have expected on my system.
>
> #include <Foundation/Foundation.h>
> void MyEHandler(NSException* exception)
> {
>  NSLog(@"exception: %...@\n",exception);
> }
> int
> main(int argc, const char *argv[])
> {
>  id pool = [[NSAutoreleasePool alloc] init];
>  NSSetUncaughtExceptionHandler(MyEHandler);
>  /* compare function address, is ok */
>  NSLog(@"MyEHandler: %p\n",MyEHandler);
>  NSLog(@"MyEHandler: %p\n",NSGetUncaughtExceptionHandler());
>  [NSException raise:@"crash" format:@"no reason"];
>  [pool release];
>  return 0;
> }
>
> $ ./obj/brokenexception
> 2009-02-20 22:11:14.668 brokenexception[15643] MyEHandler: 0x8048804
> 2009-02-20 22:11:14.984 brokenexception[15643] MyEHandler: 0x8048804
> Abandon
>
> I have installed GNUStep on Ubuntu. Package version: 7.2
>
> Is it a problem with me, the Ubuntu build or upstream?

Is the Ubuntu GNUstep Make configured with
--enable-native-objc-exceptions by any chance?

NSException does not call the uncaught exception handler if
_NATIVE_OBJC_EXCEPTIONS is defined. I guess it then becomes the
responsibility of libobjc. Is it a bug in libobjc not to do this?

- Truls


_______________________________________________
Discuss-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnustep

Reply via email to