Kakao Entwicklung: malloc: free_garbage: garbage PTR = 0x18a15e0 hat nicht Null refcount = 1 Fehler

StackOverflow https://stackoverflow.com/questions/803643

Frage

Ich bin eine Cocoa-Anwendung zu entwickeln, und jeder so oft, wenn mein app in Xcode laufe ich die folgenden Arten von Nachrichten in der Debug-Konsole erhalten:

  

<My app name> (952,0xb0103000) malloc: free_garbage: garbage PTR = 0x107b2f0 hat nicht Null refcount = 1

drehte ich mich auf MallocStackLogging und NSZombieEnabled und haben diese Adressen eine malloc_history auf ein paar und bekam Spuren entlang der Linien, die unten angegeben.

Der rote Faden scheint Verweise auf NSPopupButtonCell in allen Blöcken mit dem Fehler zu sein.

Meine Vermutung ist, dass es etwas ist, zu tun ist, irgendwo, aber nicht veröffentlicht oder aus Müll sammelbare CFRetained.

A) Ist die eher ein Programmierfehler meinerseits oder etwas im Rahmen sein, die noch für die GC nicht richtig aktualisiert?

B) Was sind die Folgen der Ausgabe Diese Nachricht zu provozieren, wenn überhaupt? das heißt Muss ich die Aufmerksamkeit auf diese Nachricht zahlen oder kann ich es einfach ignorieren?

  

Anruf [2] [arg = 48]: thread_a003d720   | Start | main | NSApplicationMain |   - [NSApplication run] | - [NSApplication nextEventMatchingMask: untilDate: INMODE: dequeue:]   | _DPSNextEvent |   BlockUntilNextEventMatchingListInMode   | ReceiveNextEventCommon |   RunCurrentEventLoopInMode |   CFRunLoopRunInMode |   CFRunLoopRunSpecific |   __CFRunLoopDoObservers | _handleWindowNeedsDisplay | - [NSWindow displayIfNeeded] | - [NSView   displayIfNeeded] | - [NSView   _displayRectIgnoringOpacity: isVisibleRect: rectIsVisibleRectForView:]   | - [NSThemeFrame   _recursiveDisplayRectIfNeededIgnoringOpacity: isVisibleRect: rectIsVisibleRectForView: TopView:]   | - [NSView   _recursiveDisplayRectIfNeededIgnoringOpacity: isVisibleRect: rectIsVisibleRectForView: TopView:]   | - [NSView   _recursiveDisplayRectIfNeededIgnoringOpacity: isVisibleRect: rectIsVisibleRectForView: TopView:]   | - [NSView   _recursiveDisplayRectIfNeededIgnoringOpacity: isVisibleRect: rectIsVisibleRectForView: TopView:]   | - [NSView   _recursiveDisplayRectIfNeededIgnoringOpacity: isVisibleRect: rectIsVisibleRectForView: TopView:]   | - [NSView   _recursiveDisplayRectIfNeededIgnoringOpacity: isVisibleRect: rectIsVisibleRectForView: TopView:]   | - [NSView   _recursiveDisplayAllDirtyWithLockFocus: visRect:]   | - [NSView _drawRect: Clip:] |   - [NSControl drawRect:] | - [NSMenuItemCell drawWithFrame: INview:] |   - [NSPopUpButtonCell _drawIndicatorWithFrame: INview:] | - [NSPopUpButtonCell _indicatorFrameForCellFrame: INview:] | - [NSPopUpButtonCell _indicatorFrameForCellFrame: isFlipped:]   | - [NSPopUpButtonCell   _defaultIndicatorImage] | - [NSPopUpButtonCell _coreUIDefaultIndicatorImage] | + [NSImage imagenamed:] | + [NSImage _coreUIImageWithName:] | + [NSImage _coreUIImageWithBaseName: Zustand: backgroundStyle:]   | - [NSCoreUIImageRep   imageWithoutEffectsRect] |   SizeForImageOptions |   CUICopyMeasurements |   CUIRenderer :: CopyMeasurements (CGRect,   CGContext *, __CFDictionary const *,   __CFArray const *) | CUIRenderer :: CopyImageMeasurements (lang,   CUIContext const *, __CFArray const *,   __CFDictionary *) | CreateImageSourceFromDisk (lang,   CUIContext const *, long *, ohne Vorzeichen   char *) |   CUISharedArtReader :: CreateImageSource (lang)   | CGImageSourceCreateWithDataProvider   | CGImageReadCreateWithProvider |   CGImageReadCreateWithData |   _CGImageReadCreate | _CFRuntimeCreateInstance | CFAllocatorAllocate |   auto_zone_allocate_object Anruf [4]   [Arg = 0]: thread_b0103000 | thread_start   | _pthread_start |   auto_collection_thread (void *) |   auto_collect_with_mode (Auto :: Zone *,   unsigned int) |   auto_collect_internal (Auto :: Zone *,   int)

War es hilfreich?

Lösung

Es ist eigentlich in einem untergeordneten Rahmen von Xcode verwendet, und jeder Garbage Collection-Anwendung, die NSImage nutzt auch das gleiche (harmlos, aber lästig) Meldung.

Eine Möglichkeit, diese zum Schweigen zu bringen ist hier: http://0xced.blogspot.com /2008/09/quietxcode.html

Andere Tipps

Ich sehe diese ganze Zeit mit Xcode. Es ist ein Speichermanagementproblem in Xcode selbst und gar nichts mit dem Programm zu tun.

Wenn die Fehler zu Ihrem Programm verwandt waren, würden sie im Debug-Fenster angezeigt (die, die nach oben zeigt, wenn Sie Umschalt-Befehl-r drücken) sowie in der Systemkonsole.

Diese Xcode malloc Nachrichten kommen nur in der Systemkonsole, so dass sie nicht Ihr Problem.

Nun, das Problem von Apple eine IDE-Freigabe, die Tonnen Speicherfehlerprotokolle in der Systemkonsole Dumps? Das vielleicht etwas zu befürchten sein:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top