代码之家  ›  专栏  ›  技术社区  ›  Yuji

垃圾收集核心数据程序中的奇怪崩溃

  •  0
  • Yuji  · 技术社区  · 14 年前

    其中一些报告了以下神秘的崩溃报告,由表视图的排序标准的更改触发。

    Application Specific Information:
    objc_msgSend() selector name: objCType
    objc[1415]: garbage collection is ON
    
    Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
    0   libobjc.A.dylib                 0x00007fff885bf10a objc_msgSend + 22
    1   com.apple.Foundation            0x00007fff82a80f91 -[NSNumber compare:] + 102
    2   com.apple.Foundation            0x00007fff82aa9c9a _NSCompareObject + 75
    3   com.apple.Foundation            0x00007fff82ae1ab9 _NSSortFunctionMany + 626
    4   com.apple.CoreFoundation        0x00007fff87f24419 __CFSimpleMergeSort + 409
    5   com.apple.CoreFoundation        0x00007fff87f242d8 __CFSimpleMergeSort + 88
    ....
    15  com.apple.CoreFoundation        0x00007fff87f242d8 __CFSimpleMergeSort + 88
    16  com.apple.CoreFoundation        0x00007fff87f240cd CFSortIndexes + 317
    17  com.apple.CoreFoundation        0x00007fff87f56a23 CFMergeSortArray + 147
    18  com.apple.Foundation            0x00007fff82aa99f3 _sortedObjectsUsingDescriptors + 572
    19  com.apple.Foundation            0x00007fff82ae162a -[NSMutableArray(NSKeyValueSorting) sortUsingDescriptors:] + 440
    20  com.apple.AppKit                0x00007fff84f06ad8 -[NSArrayController _sortObjects:] + 337
    21  com.yujitach.spires             0x00000001000225e0 -[IncrementalArrayController arrangeObjects:] + 194
    

    在这里, IncrementalArrayController NSArrayController . 我不明白为什么 arrangeObjects: 从CoreData返回的Objective-C数组导致崩溃。

    它与我的程序的多线程性有关吗?我遵循文档所说的:每个线程一个MOC,并且我不跨线程传递托管对象,只传递托管对象id。

    如果有人能建议我如何调试它,我将不胜感激。e、 g.我想看看是哪个物体在 objc_msgSend . 我怎样才能找到它?

    如果你需要源代码,可以通过 bzr :

    $ bzr branch http://www.sns.ias.edu/~yujitach/spires/code/
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   bbum    14 年前

    10.6的早期版本中有一个bug,它涉及到在垃圾收集的应用程序中对非常大的数组进行排序。正在更新修复程序。