[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: is handling of UncaughtException broken on my system?
From: |
Truls Becken |
Subject: |
Re: is handling of UncaughtException broken on my system? |
Date: |
Sat, 21 Feb 2009 10:47:06 +0100 |
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