1

クラッシュログを分析しているときに、かなり一般的なクラッシュは、自分のクラスの1つでも発生しないものであることがわかりました。これらは外部のクラッシュログであるため、問題を再現することはできません。

疑問に思っているフレームワークをデバッグできないので、この問題に取り組むための実用的なアプローチは何でしょうか。

私が持っている唯一の手がかりは、SIGSEGVがセグメンテーション違反または無効なポインタである可能性があるということです。しかし、私が言ったように、私のクラスは直接関与していないように見えるので、これは私にはあまり役に立ちません。

クラッシュ:

Exception Type:  SIGSEGV
Exception Codes: SEGV_ACCERR at 0x6b636f6c
Crashed Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib                     0x365c7f94 objc_msgSend + 43
1   CoreFoundation                      0x31cd23fd -[NSObject performSelector:withObject:withObject:] + 52
2   UIKit                               0x3291cfaf -[UIApplication sendAction:to:from:forEvent:] + 62
3   UIKit                               0x3291cf6b -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 30
4   UIKit                               0x3291cf49 -[UIControl sendAction:to:forEvent:] + 44
5   UIKit                               0x3291ccb9 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 492
6   UIKit                               0x3291d5f1 -[UIControl touchesEnded:withEvent:] + 476
7   UIKit                               0x3291bad3 -[UIWindow _sendTouchesForEvent:] + 318
8   UIKit                               0x3291b4c1 -[UIWindow sendEvent:] + 380
9   UIKit                               0x3290183d -[UIApplication sendEvent:] + 356
10  UIKit                               0x329010e3 _UIApplicationHandleEvent + 5826
11  GraphicsServices                    0x3572d22b PurpleEventCallback + 882
12  CoreFoundation                      0x31d4c523 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 38
13  CoreFoundation                      0x31d4c4c5 __CFRunLoopDoSource1 + 140
14  CoreFoundation                      0x31d4b313 __CFRunLoopRun + 1370
15  CoreFoundation                      0x31cce4a5 CFRunLoopRunSpecific + 300
16  CoreFoundation                      0x31cce36d CFRunLoopRunInMode + 104
17  GraphicsServices                    0x3572c439 GSEventRunModal + 136
18  UIKit                               0x3292fe7d UIApplicationMain + 1080
19  MyApp                               0x0000321f main (main.m:14)
4

1 に答える 1

8

このクラッシュは、ユーザー側のエラーの結果である可能性があります。スタック トレースの先頭にある数行を見ると、何が問題なのかヒントが得られるはずです。

1   CoreFoundation   0x31cd23fd -[NSObject performSelector:withObject:withObject:] + 52
2   UIKit            0x3291cfaf -[UIApplication sendAction:to:from:forEvent:] + 62
3   UIKit            0x3291cf6b -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 30
4   UIKit            0x3291cf49 -[UIControl sendAction:to:forEvent:] + 44

イベントに登録されているオブジェクト (おそらくビュー コントローラー) がどこかにあるようですが、割り当てが解除されるのが早すぎます。最善の方法は、デバッガーに接続した状態でこれを再現することです。UIButton などの UIControl コールバックを処理するコードを確認することから始めます。

于 2012-05-07T14:49:03.320 に答える