2012-02-09 6 views
5

다음과 같은 충돌이 발생하지만 요청시 복제 할 수는 없지만 사용자가주의를 끌기에는 충분합니다.크래시 바닥에 도달

이 충돌 보고서는 마찬가지로 기호화되었습니다. 그 원인을 어떻게 알았습니까! 이것은 단지 4.1에서 발생하는 것 같습니다

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

Thread 0 Crashed: 
0 libobjc.A.dylib      0x000027d8 objc_msgSend + 16 
1 CoreFoundation      0x0007d749 ____CFXNotificationPost_old_block_invoke_1 + 45 
2 libSystem.B.dylib     0x000d5984 _dispatch_call_block_and_release + 20 
3 libSystem.B.dylib     0x000d66b0 _dispatch_continuation_pop + 72 
4 libSystem.B.dylib     0x000d69fc _dispatch_main_queue_callback_4CF + 220 
5 CoreFoundation      0x0002789b __CFRunLoopRun + 1335 
6 CoreFoundation      0x00027277 CFRunLoopRunSpecific + 231 
7 CoreFoundation      0x0002717f CFRunLoopRunInMode + 59 
8 GraphicsServices     0x000045f3 GSEventRunModal + 115 
9 GraphicsServices     0x0000469f GSEventRun + 63 
10 UIKit        0x00004123 -[UIApplication _run] + 403 
11 UIKit        0x0000212f UIApplicationMain + 671 
12 MyApp        0x000024e3 main (main.m:17) 

나는 그 이후로 더 많은 정보를 얻을 수 있었지만 그리 많지는 않았습니다.

2012-02-12 18:03:04.556 MyApp[462:307] (null): unrecognized selector sent to class 0x3e0a360c 
2012-02-12 18:03:04.618 MyApp[462:307] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '(null): unrecognized selector sent to class 0x3e0a360c' 
*** Call stack at first throw: 
(
    0 CoreFoundation      0x33506ed3 __exceptionPreprocess + 114 
    1 libobjc.A.dylib      0x30412811 objc_exception_throw + 24 
    2 CoreFoundation      0x335086ff +[NSObject(NSObject) doesNotRecognizeSelector:] + 102 
    3 CoreFoundation      0x334b01d9 ___forwarding___ + 508 
    4 CoreFoundation      0x334aff90 _CF_forwarding_prep_0 + 48 
    5 Foundation       0x302a86b3 _nsnote_callback + 142 
    6 CoreFoundation      0x334e4749 ____CFXNotificationPost_old_block_invoke_1 + 44 
    7 libSystem.B.dylib     0x31d05984 _dispatch_call_block_and_release + 20 
    8 libSystem.B.dylib     0x31d066b0 _dispatch_continuation_pop + 72 
    9 libSystem.B.dylib     0x31d069fc _dispatch_main_queue_callback_4CF + 220 
    10 CoreFoundation      0x3348e89b __CFRunLoopRun + 1334 
    11 CoreFoundation      0x3348e277 CFRunLoopRunSpecific + 230 
    12 CoreFoundation      0x3348e17f CFRunLoopRunInMode + 58 
    13 GraphicsServices     0x31b5e5f3 GSEventRunModal + 114 
    14 GraphicsServices     0x31b5e69f GSEventRun + 62 
    15 UIKit        0x341bd123 -[UIApplication _run] + 402 
    16 UIKit        0x341bb12f UIApplicationMain + 670 

이제 내 addObservers는 모두 블록 기반이므로 인식 할 수없는 선택기로 연결되는 이유를 알 수 없습니다.

+0

를 ARC이 사용하지 않고있는 코드의 거의 모든 날을 도움 그래서 나는 답변을 게시하지는 않지만 이미 풀어 놓은 Block을 호출하려고하는 것처럼 보입니다. – Jasarien

+1

이것이 이유인지는 모르겠지만 할당 해제하기 전에 개체를 옵저버 (NSNotificationCenter')로 제거했는지 확인합니다. –

+0

충돌은 NSNotification 때문에 발생합니까? 코드를 주석 처리하고 실행하십시오. – Mrunal

답변

2

이 방법은 디버깅이 중단되는 동안 우리에게 많은 도움이되지 않습니다. 크래시 코드를 디버깅하는 가장 좋은 방법 중 하나를 찾았습니다. 디버깅 기술에 대한 링크를 따라

http://cocoadev.com/DebuggingAutorelease

당신은 충돌이 발생하는 이유를 실제로 보는 것은 매우 신중 콘솔을 분석 할 필요가있다. 이것은 ...이 당신을 도울 수

희망 ....

nJoy 코딩 더 ... 모르겠어요 :)

+0

감사합니다. 덕분에 많은 도움이되었습니다. –

+0

언제든지 환영합니다 .... :) – DShah

+0

링크가 없습니다. – trojanfoe