1

私のiPadアプリケーションは、iOSシミュレーターで実行しているときに、最近、不思議なSIGKILLシグナルを受信して​​います。アプリケーションの起動から2分以内に発生するようですが、毎回発生するわけではありません。

このバックトレースは何かを示していますか、それとも原因が見つかるまで物を削除してみる必要がありますか?

関与する可能性のあるコンポーネントがいくつかあります。1つの例は、最近Crashlyticsを統合したことです。もう1つの例は、CLGeocoderを使用してMKMapViewに場所をプロットしていることです。これにより、起動後の未確定のポイントで問題が発生する理由(およびMapKitがスレッドの1つに表示される理由)を説明できます。しかし、バックトレースやログからの明確な表示なしで、私は暗闇の中で撮影しています。

Xcode 4.3.2; iOS5をターゲットにしています。

    * thread #1: tid = 0x1f03, 0x9c2c4c22 libsystem_kernel.dylib`mach_msg_trap + 10, stop reason = signal SIGKILL
    frame #0: 0x9c2c4c22 libsystem_kernel.dylib`mach_msg_trap + 10
    frame #1: 0x9c2c41f6 libsystem_kernel.dylib`mach_msg + 70
    frame #2: 0x0178110a CoreFoundation`__CFRunLoopServiceMachPort + 186
    frame #3: 0x016e4550 CoreFoundation`__CFRunLoopRun + 1312
    frame #4: 0x016e3d84 CoreFoundation`CFRunLoopRunSpecific + 212
    frame #5: 0x016e3c9b CoreFoundation`CFRunLoopRunInMode + 123
    frame #6: 0x015af7d8 GraphicsServices`GSEventRunModal + 190
    frame #7: 0x015af88a GraphicsServices`GSEventRun + 103
    frame #8: 0x00394626 UIKit`UIApplicationMain + 1163
    frame #9: 0x00001d4d Tablecloth`main + 141 at main.m:16
    frame #10: 0x00001cb5 Tablecloth`start + 53

  thread #3: tid = 0x2403, 0x9c2c790a libsystem_kernel.dylib`kevent + 10
    frame #0: 0x9c2c790a libsystem_kernel.dylib`kevent + 10
    frame #1: 0x020b9372 libdispatch.dylib`_dispatch_mgr_invoke + 918
    frame #2: 0x020b7be1 libdispatch.dylib`_dispatch_mgr_thread + 53

  thread #5: tid = 0x2603, 0x9c2c4c22 libsystem_kernel.dylib`mach_msg_trap + 10
    frame #0: 0x9c2c4c22 libsystem_kernel.dylib`mach_msg_trap + 10
    frame #1: 0x9c2c41f6 libsystem_kernel.dylib`mach_msg + 70
    frame #2: 0x0178110a CoreFoundation`__CFRunLoopServiceMachPort + 186
    frame #3: 0x016e45d5 CoreFoundation`__CFRunLoopRun + 1445
    frame #4: 0x016e3d84 CoreFoundation`CFRunLoopRunSpecific + 212
    frame #5: 0x016e3c9b CoreFoundation`CFRunLoopRunInMode + 123
    frame #6: 0x03ede420 WebCore`_ZL12RunWebThreadPv + 560
    frame #7: 0x93ebced9 libsystem_c.dylib`_pthread_start + 335

  thread #6: tid = 0x2703, 0x9c2c4c22 libsystem_kernel.dylib`mach_msg_trap + 10
    frame #0: 0x9c2c4c22 libsystem_kernel.dylib`mach_msg_trap + 10
    frame #1: 0x9c2c41f6 libsystem_kernel.dylib`mach_msg + 70
    frame #2: 0x0178110a CoreFoundation`__CFRunLoopServiceMachPort + 186
    frame #3: 0x016e45d5 CoreFoundation`__CFRunLoopRun + 1445
    frame #4: 0x016e3d84 CoreFoundation`CFRunLoopRunSpecific + 212
    frame #5: 0x016e3c9b CoreFoundation`CFRunLoopRunInMode + 123
    frame #6: 0x00d94e30 Foundation`+[NSURLConnection(Loader) _resourceLoadLoop:] + 398
    frame #7: 0x00ca64d6 Foundation`-[NSThread main] + 76
    frame #8: 0x00ca6447 Foundation`__NSThread__main__ + 1258
    frame #9: 0x93ebced9 libsystem_c.dylib`_pthread_start + 335

  thread #7: tid = 0x2803, 0x9c2c4c22 libsystem_kernel.dylib`mach_msg_trap + 10
    frame #0: 0x9c2c4c22 libsystem_kernel.dylib`mach_msg_trap + 10
    frame #1: 0x9c2c41f6 libsystem_kernel.dylib`mach_msg + 70
    frame #2: 0x0178110a CoreFoundation`__CFRunLoopServiceMachPort + 186
    frame #3: 0x016e45d5 CoreFoundation`__CFRunLoopRun + 1445
    frame #4: 0x016e3d84 CoreFoundation`CFRunLoopRunSpecific + 212
    frame #5: 0x016e3c9b CoreFoundation`CFRunLoopRunInMode + 123
    frame #6: 0x0012286b MapKit`MKNormalizedPointForLayer + 30057
    frame #7: 0x00ca64d6 Foundation`-[NSThread main] + 76
    frame #8: 0x00ca6447 Foundation`__NSThread__main__ + 1258
    frame #9: 0x93ebced9 libsystem_c.dylib`_pthread_start + 335

  thread #8: tid = 0x2903, 0x9c2c6b42 libsystem_kernel.dylib`select$DARWIN_EXTSN + 10
    frame #0: 0x9c2c6b42 libsystem_kernel.dylib`select$DARWIN_EXTSN + 10
    frame #1: 0x017157cb CoreFoundation`__CFSocketManager + 939
    frame #2: 0x93ebced9 libsystem_c.dylib`_pthread_start + 335

  thread #9: tid = 0x2a03, 0x9c2c702e libsystem_kernel.dylib`__workq_kernreturn + 10
    frame #0: 0x9c2c702e libsystem_kernel.dylib`__workq_kernreturn + 10
    frame #1: 0x93ebeccf libsystem_c.dylib`_pthread_wqthread + 773

編集:Crashlyticsサポートチームは私がこれをデバッグするのを手伝ってくれました、そしてそれを修正したように見えたのはシミュレーターアプリの「コンテンツと設定のリセット…」メニュー項目を使用することでした。なぜこれが正確に起こったのかは明らかではありませんが、デバッグの中断はもう発生していません。

4

1 に答える 1

3

SIGKILLは通常、OSによって殺されたことを示唆しています。コンソールログは、スタックトレースよりも便利です。デバイス上にある場合は、メモリの使用量が多すぎると思われますが、シミュレータではその可能性はほとんどありません。もう1つの一般的なSIGKILLは、メインスレッドをブロックする時間が長すぎる場合です。そのため、私はそれを探します(ただし、シミュレーターがそれを提供するとは思いませんでした)。

ただし、確認するのに最適な場所は実行ログです。

于 2012-04-25T22:03:49.577 に答える