3

クラッシュ レポートを受け取り、クラッシュしているスレッドのコール スタックはすべて Apple のコードを示しています。見ると、Core Data のアンドゥ マネージャが で無効なポインタにアクセスしています-[NSManagedObject(_NSInternalMethods) _newSnapshotForUndo__] + 356。私はクラッシュのポイントをグーグルで検索しましたが、私が見つけた他の同様のクラッシュ ログはSequel Pro のクラッシュ ログからのものだけでした。

これが私が見ている特定のクラッシュログです。これを修正できる希望はありますか?どのように?問題を再現できませんでした。

Code Type: X86-64 (Native)
Parent Process: launchd [184]

Date/Time: 2010-07-16 18:23:38.505 -0800
OS Version: Mac OS X 10.6.4 (10F569)
Report Version: 6

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Application Specific Information:
objc[27141]: garbage collection is ON

Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 com.apple.CoreData 0x00007fff8602a7c4 -[NSManagedObject(_NSInternalMethods) _newSnapshotForUndo__] + 356
1 com.apple.CoreData 0x00007fff8602a3da -    [NSManagedObjectContext(_NSInternalChangeProcessing) _registerUndoForOperation:withObjects:withExtraArguments:] + 218
2 com.apple.CoreData 0x00007fff8602a2f2 -[NSManagedObjectContext(_NSInternalChangeProcessing) _registerUndoForModifiedObjects:] + 34
3 com.apple.CoreData 0x00007fff85ff9933 -[NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:] + 1155
4 com.apple.CoreData 0x00007fff86035e72 -[NSManagedObjectContext processPendingChanges] + 18
5 com.apple.CoreData 0x00007fff8604ca1c -    [NSManagedObjectContext(_NSInternalNotificationHandling) _processEndOfEventNotification:] + 108
6 com.apple.CoreData 0x00007fff86029c6e -[NSManagedObjectContext(_NSInternalChangeProcessing) _undoManagerCheckpoint:] + 30
7 com.apple.Foundation 0x00007fff8460784e _nsnote_callback + 167
8 com.apple.CoreFoundation 0x00007fff842d0a90 __CFXNotificationPost + 1008
9 com.apple.CoreFoundation 0x00007fff842bd008 _CFXNotificationPostNotification + 200
10 com.apple.Foundation 0x00007fff845fe7b8 -[NSNotificationCenter postNotificationName:object:userInfo:] + 101
11 com.apple.Foundation 0x00007fff8466f557 -[NSUndoManager _postCheckpointNotification] + 74
12 com.apple.Foundation 0x00007fff8466f3b9 -[NSUndoManager _endUndoGroupRemovingIfEmpty:] + 86
13 com.apple.Foundation 0x00007fff8461ea71 +[NSUndoManager(NSPrivate) _endTopLevelGroupings] + 455
14 com.apple.AppKit 0x00007fff82819945 -[NSApplication run] + 509
15 com.apple.AppKit 0x00007fff828125f8 NSApplicationMain + 364

前もって感謝します。

4

3 に答える 3

3

私は最終的にこれに対する修正を見つけました -保存するバックグラウンドスレッドでは使用しないNSManagedObjectContextでください. Core Data 操作のメイン スレッドのみに依存するようにアプローチを変更しましたが、それは機能します。

背景情報として、このコードは、フィードを読み上げる RSS リーダーであるMac OS X 用 News Anchorの更新サイクルの一部です。サイクルの目的は、RSS フィードをインターネットから読み込み、フィード記事からニュース チャンネルのエピソードを作成することです。

于 2010-09-16T02:47:50.317 に答える
0

あなたが持っている情報を考えると、何が問題を引き起こしているのかを言うのは難しいです。

コンテキストと元に戻るマネージャーが同期していないようです。検証が失敗した場合に必要な属性またはnilとの関係が設定されるかどうかを確認する必要がある、カスタム検証コードを確認してください。

于 2010-07-21T13:09:00.630 に答える
0

クラッシュの直前にobjc_exception_throwアプリを停止させるブレークポイントをオンにして、デバッガーで実行することから始めます。これにより、クラッシュの原因についてのヒントが得られます。

于 2010-07-23T18:01:52.903 に答える