الكاكاو التنمية: malloc: free_garbage: القمامة PTR = 0x18a15e0، لديها غير الصفر refcount = 1 خطأ

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

سؤال

وأنا تطوير التطبيق الكاكاو، وبين الحين والآخر عند تشغيل التطبيق الخاص بي في كسكودي أحصل على الأنواع التالية من الرسائل في وحدة التصحيح:

<اقتباس فقرة>   

و<My التطبيق name> (952،0xb0103000) malloc: free_garbage: القمامة PTR = 0x107b2f0، لديها غير الصفر refcount = 1

والتفت على MallocStackLogging وNSZombieEnabled وقام malloc_history على زوجين من هذه العناوين وحصلت آثار على غرار التي نقلت في الأسفل.

والخيط المشترك ويبدو أن يشير إلى NSPopupButtonCell في جميع الكتل مع الخطأ.

وتخميني هو أنه فعله لشيء يجري CFRetained مكان ما ولكن لم يفرج عنه أو تقدم القمامة تحصيل.

وأ) هل هذا من المرجح أن يكون خطأ في البرمجة على جهتي أو شيء من هذا في الإطار الذي لم يتم تحديثه بشكل صحيح لGC حتى الآن؟

B) ما هي النتائج المترتبة على هذه القضية إثارة هذه الرسالة، إن وجدت؟ أي هل أنا بحاجة إلى إيلاء الاهتمام لهذه الرسالة أو يمكنني تجاهله؟

<اقتباس فقرة>   

ودعوة [2] [ARG = 48]: thread_a003d720   | تشغيل | الرئيسية | NSApplicationMain |   - [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: كليب:] |   - [NSControl drawRect:] | - [NSMenuItemCell drawWithFrame: inView:] |   - [NSPopUpButtonCell _drawIndicatorWithFrame: inView:] | - [NSPopUpButtonCell _indicatorFrameForCellFrame: inView:] | - [NSPopUpButtonCell _indicatorFrameForCellFrame: isFlipped:]   | - [NSPopUpButtonCell   _defaultIndicatorImage] | - [NSPopUpButtonCell _coreUIDefaultIndicatorImage] | + [NSImage imageNamed:] | + [NSImage _coreUIImageWithName:] | + [NSImage _coreUIImageWithBaseName: الدولة: backgroundStyle:]   | - [NSCoreUIImageRep   imageWithoutEffectsRect] |   SizeForImageOptions |   CUICopyMeasurements |   CUIRenderer :: CopyMeasurements (CGRect،   CGContext *، __CFDictionary CONST *،   __CFArray CONST *) | CUIRenderer :: CopyImageMeasurements (طويل،   CUIContext CONST *، __CFArray CONST *،   __CFDictionary *) | CreateImageSourceFromDisk (طويل،   CUIContext CONST *، * طويلة، غير موقعة   شار *) |   CUISharedArtReader :: CreateImageSource (المدى)   | CGImageSourceCreateWithDataProvider   | CGImageReadCreateWithProvider |   CGImageReadCreateWithData |   _CGImageReadCreate | _CFRuntimeCreateInstance | CFAllocatorAllocate |   auto_zone_allocate_object دعوة [4]   [ARG = 0]: thread_b0103000 | thread_start   | _pthread_start |   auto_collection_thread (باطل *) |   auto_collect_with_mode (السيارات :: المنطقة *،   صحيح غير الموقعة) |   auto_collect_internal (السيارات :: المنطقة *،   الباحث)

هل كانت مفيدة؟

المحلول

وانها فعلا في إطار المستوى الأدنى المستخدمة من قبل كسكودي، وأي تطبيق جمع القمامة يستخدم سوف NSImage أيضا إنشاء هذه الرسالة نفسها (حميدة ولكن مزعج).

وطريقة واحدة لإسكات هذه هنا هو: http://0xced.blogspot.com /2008/09/quietxcode.html

نصائح أخرى

وأرى كل هذا الوقت مع كسكودي. إنها مشكلة إدارة الذاكرة في كسكودي نفسها، ولا شيء على الإطلاق للقيام مع البرنامج.

إذا كانت هناك صلة بين الأخطاء إلى البرنامج، فإنها تظهر في إطار التصحيح (الذي يظهر عند الضغط على التحول الأوامر-ص) وكذلك في وحدة النظام.

وهذه الرسائل malloc كسكودي تأتي فقط في وحدة تحكم النظام، بحيث لا تكون مشكلتك.

والآن، هذا العدد من أبل الافراج عن IDE التي مقالب طن من سجلات الخطأ الذاكرة في وحدة النظام؟ أن قد يكون شيء يدعو للقلق:)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top