2

다음과 같은 상징적 인 충돌 로그가있을 경우 스레드 5의 ASIHTTPRequest 또는 스레드 3의 NSURLConnection 때문에 크래시가 발생했을 가능성이 더 높습니까? 이 질문에 비슷한 문제가 있기 때문에이 질문에 대한 질문을합니다 :iPhone 크래시, ASIHTTPRequest 또는 NSURL 관련

그러나 그들은 NSIRLConnection이 다른 것보다 많은 정보로 NSURLConnection이 스레드 3에있는 반면 스레드 3에 있었고 ASIHTTPREquest 충돌이 더있었습니다.

Exception Type: EXC_CRASH (SIGABRT) 
Exception Codes: 0x00000000, 0x00000000 
Crashed Thread: 0 

Thread 0 Crashed: 
0 libSystem.B.dylib    0x33bd52d4 __kill + 8 
1 libSystem.B.dylib    0x33bd52c4 kill + 4 
2 libSystem.B.dylib    0x33bd52b6 raise + 10 
3 libSystem.B.dylib    0x33be9d72 abort + 50 
4 libstdc++.6.dylib    0x31bdba20 __gnu_cxx::__verbose_terminate_handler() + 376 
5 libobjc.A.dylib     0x3347c594 _objc_terminate + 104 
6 libstdc++.6.dylib    0x31bd9df2 __cxxabiv1::__terminate(void (*)()) + 46 
7 libstdc++.6.dylib    0x31bd9e46 std::terminate() + 10 
8 libstdc++.6.dylib    0x31bd9f16 __cxa_throw + 78 
9 libobjc.A.dylib     0x3347b4c4 objc_exception_throw + 64 
10 Foundation      0x33639910 __NSThreadPerformPerform + 648 
11 CoreFoundation     0x33a767d6 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 6 
12 CoreFoundation     0x33a485b0 __CFRunLoopDoSources0 + 376 
13 CoreFoundation     0x33a47e54 __CFRunLoopRun + 224 
14 CoreFoundation     0x33a47c80 CFRunLoopRunSpecific + 224 
15 CoreFoundation     0x33a47b88 CFRunLoopRunInMode + 52 
16 GraphicsServices    0x33b0e4a4 GSEventRunModal + 108 
17 GraphicsServices    0x33b0e550 GSEventRun + 56 
18 UIKit       0x32099322 -[UIApplication _run] + 406 
19 UIKit       0x32096e8c UIApplicationMain + 664 
20 AppName       0x00002172 main (main.m:14) 
21 AppName       0x0000213c start + 32 

Thread 1: 
0 libSystem.B.dylib    0x33b89974 kevent + 24 
1 libSystem.B.dylib    0x33c33704 _dispatch_mgr_invoke + 88 
2 libSystem.B.dylib    0x33c33174 _dispatch_queue_invoke + 96 
3 libSystem.B.dylib    0x33c32b98 _dispatch_worker_thread2 + 120 
4 libSystem.B.dylib    0x33bd724a _pthread_wqthread + 258 
5 libSystem.B.dylib    0x33bcf970 start_wqthread + 0 

Thread 2: 
0 libSystem.B.dylib    0x33b5d268 mach_msg_trap + 20 
1 libSystem.B.dylib    0x33b5f354 mach_msg + 44 
2 CoreFoundation     0x33a48648 __CFRunLoopServiceMachPort + 88 
3 CoreFoundation     0x33a47ed2 __CFRunLoopRun + 350 
4 CoreFoundation     0x33a47c80 CFRunLoopRunSpecific + 224 
5 CoreFoundation     0x33a47b88 CFRunLoopRunInMode + 52 
6 WebCore       0x304df124 RunWebThread(void*) + 332 
7 libSystem.B.dylib    0x33bd6886 _pthread_start + 242 
8 libSystem.B.dylib    0x33bcba88 thread_start + 0 

Thread 3: 
0 libSystem.B.dylib    0x33b5d268 mach_msg_trap + 20 
1 libSystem.B.dylib    0x33b5f354 mach_msg + 44 
2 CoreFoundation     0x33a48648 __CFRunLoopServiceMachPort + 88 
3 CoreFoundation     0x33a47ed2 __CFRunLoopRun + 350 
4 CoreFoundation     0x33a47c80 CFRunLoopRunSpecific + 224 
5 CoreFoundation     0x33a47b88 CFRunLoopRunInMode + 52 
6 Foundation      0x336465f6 +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:] + 206 
7 Foundation      0x33624192 -[NSThread main] + 38 
8 Foundation      0x3361d242 __NSThread__main__ + 966 
9 libSystem.B.dylib    0x33bd6886 _pthread_start + 242 
10 libSystem.B.dylib    0x33bcba88 thread_start + 0 

Thread 4: 
0 libSystem.B.dylib    0x33b8168c select$DARWIN_EXTSN + 20 
1 CoreFoundation     0x33a7f662 __CFSocketManager + 582 
2 libSystem.B.dylib    0x33bd6886 _pthread_start + 242 
3 libSystem.B.dylib    0x33bcba88 thread_start + 0 

Thread 5: 
0 libSystem.B.dylib    0x33b5d268 mach_msg_trap + 20 
1 libSystem.B.dylib    0x33b5f354 mach_msg + 44 
2 CoreFoundation     0x33a48648 __CFRunLoopServiceMachPort + 88 
3 CoreFoundation     0x33a47ed2 __CFRunLoopRun + 350 
4 CoreFoundation     0x33a47c80 CFRunLoopRunSpecific + 224 
5 CoreFoundation     0x33a57efe CFRunLoopRun + 42 
6 StageBloc      0x00032a08 +[ASIHTTPRequest runRequests] (ASIHTTPRequest.m:4269) 
7 Foundation      0x33624192 -[NSThread main] + 38 
8 Foundation      0x3361d242 __NSThread__main__ + 966 
9 libSystem.B.dylib    0x33bd6886 _pthread_start + 242 
10 libSystem.B.dylib    0x33bcba88 thread_start + 0 

답변

0

그것은 Three20 문제로 밝혀졌습니다. 처음 설치했을 때 빌드 설정에서 일부 링커 플래그를 변경해야했습니다. 이 플래그는 배포판 빌드에서는 변경되지 않았으며 디버그 중 하나만 변경되었습니다. App Store 사람들은 필요한 깃발이 없기 때문에 충돌을보고있었습니다. 멍청한 실수.

0

objc_exception_throw 8 다운 스택 (9)는 물론, 예외가 발생 하였다 나타낸다. 충돌이 발생하기 전에 메시지가 기록되었는지 확인하려면 장치의 콘솔 로그 (또는 시뮬레이터에서 실행중인 경우 xcode의 실행 콘솔)를보고 싶습니다.

(나는 os x & ios 충돌보고를 선택해야합니다. 충돌 보고서에 포함 된 콘솔에 마지막 행이 기록되지 않는 이유는 무엇입니까? 이는 여러 가지 종류의 충돌에 매우 유용합니다.).

+0

문제는 제가 개인적으로 할 수 없었습니다 때문에 충돌 전에 콘솔에 모든 출력이되지 않는 것입니다 그것은 일어난다. Apple의 일부 제출 과정에서 발생하는 경우에만 발생합니다. 이제 세 번이나 추락했습니다. 나 또는 10 이상의 베타 테스터가 발생하지 않았습니다. – joshholat

+0

사과가이 충돌을보고하는 경우, 충돌 로그뿐만 아니라 콘솔 로그의 끝을 제공해야합니다. 나는 이것에 관해 그들에게 불평 할 것이다. –

+0

은 충돌 로그에 최신 nslog 출력을 추가하도록 요청하는 버그 보고서를 방금 제출했습니다 (레이더 ID 9106728). 오랫동안 그렇게하는 의미였습니다. –

1

Google 검색 결과 objc_exception_throw __NSThreadPerformPerform에 대해 유사한 크래시 백 추적을 사용하는 this 질문이 발견되었습니다. 예외가 누락 된 선택 도구와 동일 할 수 있습니다. 그 스레드에서 Brad Larson는 "빌드 설정으로 가서"기타 경고 플래그에 -Wundeclared-selector "를 추가하면 컴파일시이를 잡을 수 있다고 제안합니다.

+0

아이디어를 제공해 주셔서 감사합니다.하지만 그 중 두 가지가 모두 내 목적에 맞는지 다시 확인했습니다. – joshholat

2

다른 사람의 말처럼 크래시 덤프에 관련 정보가없는 NSURLConnection 또는 ASIHTTPRequest 스레드인지 알기에는 충분한 정보가 없습니다. 콘솔 출력이 도움이 될 수 있습니다.

그러나 과거의 경험을 고려할 때 ASIHTTPRequest가 포함될 가능성이 높습니다.

어떤 버전의 ASIHTTPRequest를 사용하고 있습니까?

사람들이 ASIHTTPRequest와 관련하여 가장 많이 겪는 문제점은 요청 대 lifetime이라는 문제와 관련이 있습니다. 따라서 모든 객체에서 ASIHTTPRequest (또는 ASINetworkQueue)에 대한 대리인이 될 수 있는지를 이중으로 확인하는 것이 좋습니다. dealloc 방법 :

[request cancel] 
[request setDelegate:nil]; 
[request release]; 

모든 잠재적으로 활성 요청을 수행해야합니다.

+0

처음에는 코드에서 이렇게 설정했습니다. 그러나 이후 클래스의 속성과 반대되는 더 많은 지역 변수를 사용했습니다. 콜백 함수가 호출되면, 나는 결국 clearDelegatesAndCancel을 호출한다. – joshholat

+0

델리게이트가 할당 해제 된 후 콜백이 호출되면 어떻게됩니까? deallocate 델리게이트를 호출하는 것이 거의 확실하게 중단되므로 요청이 델리게이트보다 오래 지속될 수 있는지 확인해야합니다. – JosephH

0

는 지금까지 내가 아는 한, 문제는 스레드 5에 있습니다

Thread 5: 
0 libSystem.B.dylib    0x33b5d268 mach_msg_trap + 20 
1 libSystem.B.dylib    0x33b5f354 mach_msg + 44 
2 CoreFoundation     0x33a48648 __CFRunLoopServiceMachPort + 88 
3 CoreFoundation     0x33a47ed2 __CFRunLoopRun + 350 
4 CoreFoundation     0x33a47c80 CFRunLoopRunSpecific + 224 
5 CoreFoundation     0x33a57efe CFRunLoopRun + 42 
**6 StageBloc      0x00032a08 +[ASIHTTPRequest runRequests] (ASIHTTPRequest.m:4269)** 

ASIHTTPRequest 문제가 될 수 있습니다. 지속 버전으로 ASIHTTPRequest를 업데이트하십시오 : http://allseeing-i.com/ASIHTTPRequest/

0

을 나는

으로 이것을 사용
[request clearDelegatesAndCancel]; 
request = nil; 
+0

이 정보가 어떻게 도움이되는지 설명하는 정보를 추가하십시오. –