I've seen this happening on a non garbage collected app too. Would very much like to know the reason why.

On 21 May 2009, at 22:17, Michael Link wrote:

I have a class with the following methods

- (void)save
{
        NSError* error = nil;
        
        if (![self save:&error]) {
                NSLog(@"caught error during save: %@", error);
        }
}

- (BOOL)save:(NSError**)error
{
        if (![_thread isCancelled]) {
                return [_managedObjectContext save:error];
        }
        
        return YES;
}

When -save is called it calls -save: to get error information if an error occurs while saving an NSManagedObjectContext. When an error does occur sometimes a crash will occur at NSLog when trying to get the NSError description. Is it possible that the local variable error in -save is being garbage collected before NSLog is called?

Thread 0 Crashed:
0 com.apple.CoreFoundation 0x00007fff833bd24a CFBundleCopyLocalizedString + 90 1 com.apple.CoreFoundation 0x00007fff833db111 _CFErrorCreateLocalizedDescription + 273 2 com.apple.Foundation 0x00007fff81f0f3f8 -[NSError localizedDescription] + 136 3 com.apple.CoreFoundation 0x00007fff833db25a CFErrorCopyDescription + 138 4 com.apple.CoreFoundation 0x00007fff833db2b4 _CFErrorCreateDebugDescription + 36 5 com.apple.Foundation 0x00007fff81f0f349 -[NSError description] + 9 6 com.apple.Foundation 0x00007fff81e83770 _NSDescriptionWithLocaleFunc + 128 7 com.apple.CoreFoundation 0x00007fff83428b54 _CFStringAppendFormatAndArgumentsAux + 2964 8 com.apple.CoreFoundation 0x00007fff83429fa8 _CFStringCreateWithFormatAndArgumentsAux + 120
9   com.apple.CoreFoundation            0x00007fff8345dab0 _CFLogvEx + 64
10  com.apple.Foundation                0x00007fff81e9ba0b NSLogv + 139
11  com.apple.Foundation                0x00007fff81ef69a2 NSLog + 162
12 net.fractal.Bug 0x0000000100094d74 0x100000000 + 609652 13 net.fractal.Bug 0x0000000100050e58 0x100000000 + 331352 14 com.apple.CoreFoundation 0x00007fff8347dead __invoking___ + 141 15 com.apple.CoreFoundation 0x00007fff8347d774 -[NSInvocation invoke] + 148 16 net.fractal.Bug 0x0000000100040b6d 0x100000000 + 265069 17 com.apple.CoreFoundation 0x00007fff8347dead __invoking___ + 141 18 com.apple.CoreFoundation 0x00007fff8347d774 -[NSInvocation invoke] + 148 19 com.apple.CoreFoundation 0x00007fff8347d833 -[NSInvocation invokeWithTarget:] + 51 20 com.apple.Foundation 0x00007fff81e7f754 __NSThreadPerformPerform + 148 21 com.apple.CoreFoundation 0x00007fff83404008 CFRunLoopRunSpecific + 2808 22 com.apple.HIToolbox 0x00007fff82a71bce RunCurrentEventLoopInMode + 278 23 com.apple.HIToolbox 0x00007fff82a71963 ReceiveNextEventCommon + 161 24 com.apple.HIToolbox 0x00007fff82a718af BlockUntilNextEventMatchingListInMode + 79 25 com.apple.AppKit 0x00007fff80a89420 _DPSNextEvent + 603 26 com.apple.AppKit 0x00007fff80a88d61 - [NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 136 27 com.apple.AppKit 0x00007fff80d07457 -[NSScrollView scrollWheel:] + 721 28 com.apple.AppKit 0x00007fff80be9d59 forwardMethod + 100 29 com.apple.AppKit 0x00007fff80d0716e -[NSView scrollWheel:] + 249 30 com.apple.AppKit 0x00007fff80be9d59 forwardMethod + 100 31 com.apple.AppKit 0x00007fff80d0716e -[NSView scrollWheel:] + 249 32 com.apple.AppKit 0x00007fff80b5b40b -[NSWindow sendEvent:] + 6820 33 com.apple.AppKit 0x00007fff80b282f6 - [NSApplication sendEvent:] + 5089 34 com.apple.AppKit 0x00007fff80a82b20 - [NSApplication run] + 499 35 com.apple.AppKit 0x00007fff80a4f8ac NSApplicationMain + 373 36 net.fractal.Bug 0x00000001000096fb 0x100000000 + 38651 37 net.fractal.Bug 0x00000001000021b8 0x100000000 + 8632

Thread 1:
0 libauto.dylib 0x00000001006876e4 Auto::Admin::deallocate(void*) + 772 1 libauto.dylib 0x000000010068e623 Auto::Zone::block_deallocate_internal(void*) + 355 2 libauto.dylib 0x000000010067c1cd auto_collect_internal(Auto::Zone*, unsigned int) + 2685 3 libauto.dylib 0x000000010067c380 auto_collection_thread(void*) + 112 4 libSystem.B.dylib 0x00007fff827ade8b _pthread_start + 316 5 libSystem.B.dylib 0x00007fff827add4d thread_start + 13


--
Michael
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/cocoadev%40mikeabdullah.net

This email sent to cocoa...@mikeabdullah.net

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to