4

テーブルビューを非常に速くスクロールしたり、リモートからデータをリロードしようとすると、アプリケーションがクラッシュします。最初にリモートフェッチを実行してからテーブルビューをスクロールすると、すべてが正常に機能しているようです。以下のクラッシュログが何を意味するのかわかりません。時々うまく動作し、いつかクラッシュします。

Incident Identifier: 710A120C-97E3-45C8-A7B2-E6A7BD98BC1A
CrashReporter Key:   8bd54d8428128b9e6b8c04d59b86c40cccf33457
Hardware Model:      iPhone5,2
Process:         MyApp [5294]
Path:            /var/mobile/Applications/B6ED5B19-B8D7-4146-90A2-F709AE35292F/MyApp.app/MyApp
Identifier:      MyApp
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2013-02-26 16:45:27.693 +0200
OS Version:      iOS 6.1.2 (10B146)
Report Version:  104

Exception Type:  EXC_CRASH (SIGSEGV)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread:  1

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0:
0   libobjc.A.dylib                 0x3c3f658a _cache_getImp + 10
1   libobjc.A.dylib                 0x3c3f6fa0 lookUpMethod + 24
2   libobjc.A.dylib                 0x3c3f81e2 class_respondsToSelector + 26
3   CoreFoundation                  0x3470a750 objectIsKindOfClass + 32
4   CoreFoundation                  0x3470a49c __handleUncaughtException + 64
5   libobjc.A.dylib                 0x3c3fba46 _objc_terminate() + 126
6   libc++abi.dylib                 0x3be48118 safe_handler_caller(void (*)()) + 76
7   libc++abi.dylib                 0x3be481b0 std::terminate() + 16
8   libc++abi.dylib                 0x3be49626 __cxa_rethrow + 90
9   libobjc.A.dylib                 0x3c3fb9b0 objc_exception_rethrow + 8
10  CoreFoundation                  0x3465129c CFRunLoopRunSpecific + 452
11  CoreFoundation                  0x346510c4 CFRunLoopRunInMode + 100
12  GraphicsServices                0x3822f336 GSEventRunModal + 70
13  UIKit                           0x3656d2b4 UIApplicationMain + 1116
14  MyApp                       0x000910a2 0x44000 + 315554
15  MyApp                       0x0004668c 0x44000 + 9868

Thread 1 name:  Dispatch queue: com.apple.libdispatch-manager
Thread 1 Crashed:
0   libsystem_kernel.dylib          0x3c8df5d0 kevent64 + 24
1   libdispatch.dylib               0x3c81ad22 _dispatch_mgr_invoke + 806
2   libdispatch.dylib               0x3c816374 _dispatch_mgr_thread + 32

Thread 2 name:  WebThread
Thread 2:
0   libsystem_kernel.dylib          0x3c8dee30 mach_msg_trap + 20
1   libsystem_kernel.dylib          0x3c8defd0 mach_msg + 48
2   CoreFoundation                  0x346df2b6 __CFRunLoopServiceMachPort + 126
3   CoreFoundation                  0x346de02c __CFRunLoopRun + 900
4   CoreFoundation                  0x34651238 CFRunLoopRunSpecific + 352
5   CoreFoundation                  0x346510c4 CFRunLoopRunInMode + 100
6   WebCore                         0x3a650390 RunWebThread(void*) + 440
7   libsystem_c.dylib               0x3c8480de _pthread_start + 306
8   libsystem_c.dylib               0x3c847fa4 thread_start + 4

Thread 3 name:  com.apple.NSURLConnectionLoader
Thread 3:
0   libsystem_kernel.dylib          0x3c8dee30 mach_msg_trap + 20
1   libsystem_kernel.dylib          0x3c8defd0 mach_msg + 48
2   CoreFoundation                  0x346df2b6 __CFRunLoopServiceMachPort + 126
3   CoreFoundation                  0x346de02c __CFRunLoopRun + 900
4   CoreFoundation                  0x34651238 CFRunLoopRunSpecific + 352
5   CoreFoundation                  0x346510c4 CFRunLoopRunInMode + 100
6   Foundation                      0x34f9e888 +[NSURLConnection(Loader) _resourceLoadLoop:] + 304
7   Foundation                      0x3502222c __NSThread__main__ + 968
8   libsystem_c.dylib               0x3c8480de _pthread_start + 306
9   libsystem_c.dylib               0x3c847fa4 thread_start + 4

Thread 4:
0   libsystem_kernel.dylib          0x3c8efd98 __workq_kernreturn + 8
1   libsystem_c.dylib               0x3c83dad6 _pthread_workq_return + 14
2   libsystem_c.dylib               0x3c83d7f2 _pthread_wqthread + 362
3   libsystem_c.dylib               0x3c83d680 start_wqthread + 4

Thread 5:
0   libsystem_kernel.dylib          0x3c8dee30 mach_msg_trap + 20
1   libsystem_kernel.dylib          0x3c8defd0 mach_msg + 48
2   CoreFoundation                  0x346df2b6 __CFRunLoopServiceMachPort + 126
3   CoreFoundation                  0x346de02c __CFRunLoopRun + 900
4   CoreFoundation                  0x34651238 CFRunLoopRunSpecific + 352
5   CoreFoundation                  0x346510c4 CFRunLoopRunInMode + 100
6   Foundation                      0x34f755be -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 250
7   Foundation                      0x35018c40 -[NSRunLoop(NSRunLoop) run] + 76
8   MyApp                       0x0016b900 0x44000 + 1210624
9   Foundation                      0x3502222c __NSThread__main__ + 968
10  libsystem_c.dylib               0x3c8480de _pthread_start + 306
11  libsystem_c.dylib               0x3c847fa4 thread_start + 4

Thread 6:
0   libsystem_kernel.dylib          0x3c8dee30 mach_msg_trap + 20
1   libsystem_kernel.dylib          0x3c8defd0 mach_msg + 48
2   CoreFoundation                  0x346df2b6 __CFRunLoopServiceMachPort + 126
3   CoreFoundation                  0x346de02c __CFRunLoopRun + 900
4   CoreFoundation                  0x34651238 CFRunLoopRunSpecific + 352
5   CoreFoundation                  0x346510c4 CFRunLoopRunInMode + 100
6   Foundation                      0x34f755be -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 250
7   Foundation                      0x35018c40 -[NSRunLoop(NSRunLoop) run] + 76
8   MyApp                       0x000e63d0 0x44000 + 664528
9   Foundation                      0x3502222c __NSThread__main__ + 968
10  libsystem_c.dylib               0x3c8480de _pthread_start + 306
11  libsystem_c.dylib               0x3c847fa4 thread_start + 4

Thread 7 name:  com.apple.CFSocket.private
Thread 7:
0   libsystem_kernel.dylib          0x3c8ef594 __select + 20
1   CoreFoundation                  0x346e3474 __CFSocketManager + 676
2   libsystem_c.dylib               0x3c8480de _pthread_start + 306
3   libsystem_c.dylib               0x3c847fa4 thread_start + 4

Thread 8:
0   libsystem_kernel.dylib          0x3c8dee30 mach_msg_trap + 20
1   libsystem_kernel.dylib          0x3c8defd0 mach_msg + 48
2   CoreFoundation                  0x346df2b6 __CFRunLoopServiceMachPort + 126
3   CoreFoundation                  0x346de02c __CFRunLoopRun + 900
4   CoreFoundation                  0x34651238 CFRunLoopRunSpecific + 352
5   CoreFoundation                  0x346afc46 CFRunLoopRun + 94
6   MyApp                       0x00115d7e 0x44000 + 859518
7   Foundation                      0x3502222c __NSThread__main__ + 968
8   libsystem_c.dylib               0x3c8480de _pthread_start + 306
9   libsystem_c.dylib               0x3c847fa4 thread_start + 4

Thread 9:
0   libsystem_kernel.dylib          0x3c8efd98 __workq_kernreturn + 8
1   libsystem_c.dylib               0x3c83dad6 _pthread_workq_return + 14
2   libsystem_c.dylib               0x3c83d7f2 _pthread_wqthread + 362
3   libsystem_c.dylib               0x3c83d680 start_wqthread + 4

Thread 10:
0   libsystem_kernel.dylib          0x3c8efd98 __workq_kernreturn + 8
1   libsystem_c.dylib               0x3c83dad6 _pthread_workq_return + 14
2   libsystem_c.dylib               0x3c83d7f2 _pthread_wqthread + 362
3   libsystem_c.dylib               0x3c83d680 start_wqthread + 4

Thread 11 name:  JavaScriptCore::BlockFree
Thread 11:
0   libsystem_kernel.dylib          0x3c8ef08c __psynch_cvwait + 24
1   libsystem_c.dylib               0x3c840afc _pthread_cond_wait + 644
2   libsystem_c.dylib               0x3c840870 pthread_cond_timedwait + 40
3   JavaScriptCore                  0x38625df6 WTF::ThreadCondition::timedWait(WTF::Mutex&, double) + 102
4   JavaScriptCore                  0x38738532 JSC::BlockAllocator::blockFreeingThreadMain() + 78
5   JavaScriptCore                  0x3874b030 WTF::wtfThreadEntryPoint(void*) + 12
6   libsystem_c.dylib               0x3c8480de _pthread_start + 306
7   libsystem_c.dylib               0x3c847fa4 thread_start + 4

Thread 12 name:  JavaScriptCore::Marking
Thread 12:
0   libsystem_kernel.dylib          0x3c8ef08c __psynch_cvwait + 24
1   libsystem_c.dylib               0x3c840afc _pthread_cond_wait + 644
2   libsystem_c.dylib               0x3c84acf8 pthread_cond_wait + 36
3   JavaScriptCore                  0x386cb6dc JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode) + 140
4   JavaScriptCore                  0x386cb620 JSC::MarkStackThreadSharedData::markingThreadMain() + 140
5   JavaScriptCore                  0x3874b030 WTF::wtfThreadEntryPoint(void*) + 12
6   libsystem_c.dylib               0x3c8480de _pthread_start + 306
7   libsystem_c.dylib               0x3c847fa4 thread_start + 4

Thread 13 name:  WebCore: CFNetwork Loader
Thread 13:
0   libsystem_kernel.dylib          0x3c8dee30 mach_msg_trap + 20
1   libsystem_kernel.dylib          0x3c8defd0 mach_msg + 48
2   CoreFoundation                  0x346df2b6 __CFRunLoopServiceMachPort + 126
3   CoreFoundation                  0x346de02c __CFRunLoopRun + 900
4   CoreFoundation                  0x34651238 CFRunLoopRunSpecific + 352
5   CoreFoundation                  0x346510c4 CFRunLoopRunInMode + 100
6   WebCore                         0x3a6eaccc WebCore::runLoaderThread(void*) + 140
7   JavaScriptCore                  0x3874b030 WTF::wtfThreadEntryPoint(void*) + 12
8   libsystem_c.dylib               0x3c8480de _pthread_start + 306
9   libsystem_c.dylib               0x3c847fa4 thread_start + 4

Thread 14:
0   libsystem_kernel.dylib          0x3c8efd98 __workq_kernreturn + 8
1   libsystem_c.dylib               0x3c83dad6 _pthread_workq_return + 14
2   libsystem_c.dylib               0x3c83d7f2 _pthread_wqthread + 362
3   libsystem_c.dylib               0x3c83d680 start_wqthread + 4

Thread 1 crashed with ARM Thread State (32-bit):
    r0: 0x00000004    r1: 0x00000000      r2: 0x00000000      r3: 0x0042c714
    r4: 0x00000001    r5: 0x00000000      r6: 0x0042c744      r7: 0x0042c764
    r8: 0x00000000    r9: 0x0042c6c8     r10: 0x3e3a2188     r11: 0x00000002
    ip: 0x00000171    sp: 0x0042c6d0      lr: 0x3c81ad27      pc: 0x3c8df5d0
  cpsr: 0x60000010

このクラッシュ ログが何に関連し、どのように解決できるかを誰かが説明してくれたら、本当にうれしいです。他の人を助けたいと思っているすべての人に感謝します。

4

1 に答える 1

4

ぶら下がっているポインターのように見えますが、あなたはそれにメッセージを送信しています。MikeD が言ったように、役立つ場合は例外でブレークポイントを使用してください。ただし、SIGABRT ではなく SIGSEGV を取得するため、100% 信頼できるわけではありません。そして、例外のスローは実際にはクラッシュの原因ではなく、単なる境界効果です。

編集

OK: クラッシュ ログには、libsystem_kernel.dylib が kevent 呼び出しでクラッシュしたことが示されています。これは非公開で不透明であるため、これは役に立ちません。このライブラリがうまく機能することを 100% 確信できます。これは、書き込みを行うべきではないスペース メモリを (意図せずに) 使用したために発生する可能性があります。ぶら下がっているポインターのように。メモリを 0x2000 に割り当て、このメモリを指すポインタがあるとします。メモリを解放したが、このアドレスへのこのポインタをまだ使用している場合、他の誰か (libsystem_kernel など) がそれを使用していて、同じメモリ内のいくつかのデータを変更したとします。時間(ぶら下がっているポインターのため)。次に、反対側で破損したデータが使用され、ランダムな動作が発生します。そのため、クラッシュ ログを文字通り分析すると、間違ったステートメントを実行することになります。libSystem の kevent は安定しているためです。

ところで、クラッシュしたスレッド 1 がありますが、スレッド 0 を調べると、それも例外を発生させようとしていましたが、実行する時間がありませんでした。これは、データが破損しているためにも発生する可能性があります。

そのため、別のクラッシュを作成して、これと比較することをお勧めします。クラッシュログが同じなら、私は完全に間違っていました。クラッシュ ログが異なる場合、これはダングリング ポインターです。

于 2013-02-26T15:51:50.380 に答える