Cacau desenvolvimento: malloc: free_garbage: lixo ptr = 0x18a15e0, tem diferente de zero refcount = 1 erro

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

Pergunta

Estou desenvolvendo um aplicativo de cacau, e de vez em quando ao executar meu aplicativo no Xcode eu recebo os seguintes tipos de mensagens no console de depuração:

<My app name> (952,0xb0103000) malloc: free_garbage: lixo ptr = 0x107b2f0, tem diferente de zero refcount = 1

Liguei MallocStackLogging e NSZombieEnabled e fez um malloc_history em um par desses endereços e tem traços ao longo das linhas que citou na parte inferior.

O traço comum parece ser referências a NSPopupButtonCell em todos os blocos com o erro.

Meu palpite é que ele é fazer a algo sendo CFRetained em algum lugar, mas não liberada ou fez colecionáveis ??lixo.

A) é mais provável que seja um erro de programação da minha parte ou algo no quadro que não foi devidamente atualizado para o GC ainda?

B) Quais são as consequências da questão provocando esta mensagem, se houver? ou seja, eu preciso prestar atenção a esta mensagem ou posso simplesmente ignorá-lo?

Chamada [2] [arg = 48]: thread_a003d720 | Começar | principal | NSApplicationMain | - [run NSApplication] | - [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: clipe:] | - [NSControl drawRect:] | - [NSMenuItemCell drawWithFrame: InView:] | - [NSPopUpButtonCell _drawIndicatorWithFrame: InView:] | - [NSPopUpButtonCell _indicatorFrameForCellFrame: InView:] | - [NSPopUpButtonCell _indicatorFrameForCellFrame: isFlipped:] | - [NSPopUpButtonCell _defaultIndicatorImage] | - [NSPopUpButtonCell _coreUIDefaultIndicatorImage] | + [NSImage imageNamed:] | + [NSImage _coreUIImageWithName:] | + [NSImage _coreUIImageWithBaseName: Estado: BackgroundStyle:] | - [NSCoreUIImageRep imageWithoutEffectsRect] | SizeForImageOptions | CUICopyMeasurements | CUIRenderer :: CopyMeasurements (CGRect, CGContext *, __CFDictionary const *, __CFArray const *) | CUIRenderer :: CopyImageMeasurements (longa, CUIContext const *, __CFArray const *, __CFDictionary *) | CreateImageSourceFromDisk (longa, CUIContext const *, longa *, sem assinatura char *) | CUISharedArtReader :: CreateImageSource (longo) | CGImageSourceCreateWithDataProvider | CGImageReadCreateWithProvider | CGImageReadCreateWithData | _CGImageReadCreate | _CFRuntimeCreateInstance | CFAllocatorAllocate | auto_zone_allocate_object Chamada [4] [Arg = 0]: thread_b0103000 | thread_start | _pthread_start | auto_collection_thread (void *) | auto_collect_with_mode (Auto :: Zona *, int não assinado) | auto_collect_internal (Auto :: Zona *, int)

Foi útil?

Solução

É realmente em um quadro de baixo nível usado por Xcode, e qualquer aplicação de coleta de lixo que usos NSImage também irá gerar esta mesma mensagem (inócuo, mas irritante).

Uma maneira de silenciar estes é aqui: http://0xced.blogspot.com /2008/09/quietxcode.html

Outras dicas

Eu vejo isso o tempo todo com o Xcode. É um problema de gerenciamento de memória em si Xcode, e absolutamente nada a ver com o seu programa.

Se os erros foram relacionados a seu programa, que iria aparecer na janela de depuração (aquele que aparece quando você pressiona shift-comando-r), bem como no console do sistema.

Essas mensagens malloc Xcode chegar apenas no console do sistema, para que eles não são o seu problema.

Agora, esta questão da Apple lançar um IDE que despeja toneladas de logs de erro de memória no console do sistema? que pode ser algo com que se preocupar:)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top