Re: How to track down this memory problem?
Re: How to track down this memory problem?
- Subject: Re: How to track down this memory problem?
- From: Michael Watson <email@hidden>
- Date: Sat, 22 Jul 2006 02:41:41 -0400
Without seeing your code, it sounds supiciously like you're over-
releasing an object somewhere.
Can you show us the line it crashes on, with the rest of the method
around it?
--
Michael Watson
On 22 Jul, 2006, at 02:06, Adam Knight wrote:
I have a very frustrating little bug I'm trying to find, and I'm
almost certain it's Apple's and not mine, but I'm trying to make sure.
My program (Notae) uses Cocoa classes to download a web page and
render it as an attributed string, for one of its features. This
works. However, certain sites cause problems in that when you
switch to the note that has that data the program will crash.
Reliably. With the same backtrace. In Apple's code.
I've commented all my observing code out, all my major functions,
disabled all features, etc. and the bug stands no matter how much I
remove. It's reduced sometimes, but never eliminated. The only
way to eliminate it is to not display those specific notes (return
dummy values from the model). After all I've looked into, it
appears an NSColor instance, created by the RTF code, is released
early right as the NSText object is performing a setTextColor: with
it, and then blammo, it goes down.
I do not have any code that does anything with the data before or
during initial presentation, so that's out, too.
So, good readers, any tips on finding this, fixing this, or writing
up a really nice bug for Apple?
Addl. Data:
I did a malloc history on the missing instance and came up with the
malloc, but not the free:
Call [2] [arg=24]: thread_a000cf60 |0x1 | start | start | main |
NSApplicationMain | -[NSApplication run] | -[NSApplication
sendEvent:] | -[NSApplication _handleKeyEquivalent:] | -[NSMenu
performKeyEquivalent:] | -[NSCarbonMenuImpl
performActionWithHighlightingForItemAtIndex:] | -[NSMenu
performActionForItemAtIndex:] | -[NSApplication
sendAction:to:from:] | -[NoteDocument menuSelectNote:] | -
[NSArrayController setSelectionIndexes:] | -[NSArrayController
_selectObjectsAtIndexesNoCopy:avoidsEmptySelection:sendObserverNotific
ations:forceUpdate:] | -[NSArrayController
didChangeValuesForArrangedKeys:objectKeys:indexKeys:] | -
[NSController didChangeValueForKey:] | -[NSController
_notifyObserversForKeyPath:change:] | -[NSObject
(NSKeyValueObservingPrivate) _notifyObserversForKeyPath:change:] | -
[NSTextValueBinder _observeValueForKeyPath:ofObject:context:] | -
[NSValueBinder _observeValueForKeyPath:ofObject:context:] | -
[NSValueBinder
_adjustObject:mode:observedController:observedKeyPath:context:editable
State:adjustState:] | -[NSValueBinder showValue:inObject:] | -
[_NSTextPlugin showValue:inObject:] | -[NSAttributedString
(NSAttributedStringKitAdditions) initWithRTFD:documentAttributes:]
| -[NSAttributedString(NSAttributedStringKitAdditions)
initWithData:options:documentAttributes:error:] |
_NSReadAttributedStringFromURLOrData | -[NSRTFReader
attributedString] | CharAttr | processColor | +[NSColor
colorWithCalibratedRed:green:blue:alpha:] | NSAllocateObject |
_internal_class_createInstanceFromZone | malloc_zone_calloc
And the backtrace is always something like:
Exception: EXC_BAD_ACCESS (0x0001)
Codes: KERN_INVALID_ADDRESS (0x0001) at 0xdc38a535
Thread 0 Crashed:
0 <<00000000>> 0xfffeff20 objc_msgSend_rtp + 32
1 com.apple.CoreFoundation 0x907cf99c CFDictionarySetValue
+ 448
2 com.apple.Foundation 0x929134a4 -[NSCFDictionary
setObject:forKey:] + 184
3 com.apple.AppKit 0x9379bb68 -[NSTextView(NSPrivate)
_addToTypingAttributes:value:] + 128
4 com.apple.AppKit 0x937a607c -[NSTextView
setTextColor:]
+ 316
5 com.apple.AppKit 0x93baa904 -[_NSTextPlugin
showValue:inObject:] + 372
6 com.apple.AppKit 0x9390598c -[NSValueBinder
showValue:inObject:] + 252
7 com.apple.AppKit 0x93904b30 -[NSValueBinder
_adjustObject:mode:observedController:observedKeyPath:context:editable
State:adjustState:]
+ 892
8 com.apple.AppKit 0x9390473c -[NSValueBinder
_observeValueForKeyPath:ofObject:context:] + 264
9 com.apple.AppKit 0x93ba78cc -[NSTextValueBinder
_observeValueForKeyPath:ofObject:context:] + 60
10 com.apple.Foundation 0x929b8d08
-[NSObject(NSKeyValueObservingPrivate)
_notifyObserversForKeyPath:change:]
+ 892
11 com.apple.AppKit 0x9392d3b0 -[NSController
_notifyObserversForKeyPath:change:] + 236
Help?
--
Adam Knight
"Every man is guilty of all the good he didn't do." -- Voltaire
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40bungie.org
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden