2011-03-09 117 views
2

鉴于以下符号化的崩溃日志,是否更有可能由于线程5上的​​ASIHTTPRequest或线程3上的NSURLConnection而发生崩溃?我问,因为这个问题有类似的问题:ASIHTTPRequest, EXC_BAD_ACCESS when request did finishediPhone崩溃,ASIHTTPRequest或NSURL相关

然而,他们不得不在他们ASIHTTPREquest崩溃更多是在线程3,而我NSURLConnection的是线程3比其他更多信息。

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的运行控制台)以查看是否在崩溃之前记录了消息。为什么不是最后一行记录到崩溃报告中包含的控制台?这对于多种崩溃报告都是非常有帮助的)。

+0

的事情是,没有任何输出到崩溃前的控制台,因为我个人从来没有能够使它发生了。它只发生在一些魔术苹果在提交过程中做的。他们现在三次坠毁。我或10+测试者从来没有发生过。 – joshholat 2011-03-09 02:32:16

+0

如果它向你报告这次崩溃,那么他们肯定应该知道为你提供控制台日志的结束以及崩溃日志。我会向他们抱怨这件事。 – 2011-03-09 04:15:54

+0

刚刚提交了一个错误报告,要求将最近的nslog输出添加到崩溃日志中(雷达编号9106728)。长期以来一直这么做。 – 2011-03-09 04:25:14

1

谷歌搜索objc_exception_throw __NSThreadPerformPerform和找到this问题与类似的崩溃回溯...您的异常可能是相同的缺少选择器的东西。在那个线程Brad Larson建议“去你的编译设置并在其他警告标志中添加-Wundeclared-selector”,以便在编译时可以捕捉到它。

+0

谢谢你的想法,但我已经仔细检查过,所有这些在我的结尾都是正确的。 – joshholat 2011-03-09 05:05:53

2

正如其他人所说的,崩溃转储中没有足够的信息来判断它是否可能涉及NSURLConnection或ASIHTTPRequest线程,并且控制台输出可能会有帮助。

但是,根据过去的经验,似乎它涉及ASIHTTPRequest的可能性。

您使用的是什么版本的ASIHTTPRequest?

人们对ASIHTTPRequest最常见的问题是请求与委托生命期有关的问题,所以我建议仔细检查在每个对象中你可以委托ASIHTTPRequest(或ASINetworkQueue)在dealloc中方法:

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

这应为潜在活性的请求来完成。

+0

我最初在我的代码中设置了它。但是,我已经去使用更多的本地变量,而不是类的属性。当回调函数被调用时,我然后clearDelegatesAndCancel结束。 – joshholat 2011-03-09 14:46:35

+0

如果在代理被释放后调用回调会怎么样?你需要以某种方式确保请求不能超出委托,因为调用一个释放委托几乎肯定会崩溃。 – JosephH 2011-03-10 12:42:17

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

请添加更多信息来描述这有助于。 – 2013-12-26 08:07:01