After looking at stackoverflow and many other forums, decided to ask this question. The closest that came to discussing the exact problem I have is this answer
I have an App in the AppStore thats been built on a fairly stable codebase and has been in use for the past two years. But now, after submitting a recent update to the app, its crashing on iPhone 3G (version 4.2.1). It doesn't crash on the device when I run a debug build
Here are the points I have verified based on other posts:
- All build configurations (Debug/Distribution/AppStore), have been set to minimum is version at 3.0, base SDK to latest
- Valid Architectures value set to armv6 armv7
- I am not getting an "ate badfood" exception (Exception Code: 0x8badf00d)
- It works on most newer iOS devices that I could test it on
- Build Active Architecture Only is not checked
- The app crashes within 5 seconds of launch, so its not the watchdog messing with the launch
- Binary was built using XCode 3.2.6
- Symbolicated Crashlogs dont have much info in them that I am able to understand
Here's the crash log
Date/Time: 2011-07-01 11:16:06.728 -0400
OS Version: iPhone OS 4.2.1 (8C148)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0048af00
Crashed Thread: 0
Thread 0 Crashed:
0 ??? 0x0048af00 0 + 4763392
Thread 1:
0 libSystem.B.dylib 0x35d8f974 kevent + 24
1 libSystem.B.dylib 0x35e5e2fc _dispatch_mgr_invoke + 88
2 libSystem.B.dylib 0x35e5dd68 _dispatch_queue_invoke + 96
3 libSystem.B.dylib 0x35e5d788 _dispatch_worker_thread2 + 120
4 libSystem.B.dylib 0x35de6970 _pthread_wqthread + 392
5 libSystem.B.dylib 0x35ddd2fc start_wqthread + 0
Thread 2:
0 libSystem.B.dylib 0x35de454c __semwait_signal + 24
1 libSystem.B.dylib 0x35d90f70 _pthread_cond_wait + 1140
2 libSystem.B.dylib 0x35d90910 pthread_cond_wait + 48
3 Foundation 0x3517ed5e -[NSCondition wait] + 170
4 Foundation 0x35169106 -[NSObject(NSThreadPerformAdditions) performSelector:onThread:withObject:waitUntilDone:modes:] + 764
5 Foundation 0x35168d5e -[NSObject(NSThreadPerformAdditions) performSelectorOnMainThread:withObject:waitUntilDone:] + 98
6 MyCrashingApp 0x00014ab0 -[URLDownload connectionDidFinishLoading:] (URLDownload.m:79)
7 Foundation 0x35184232 -[NSURLConnection(NSURLConnectionReallyInternal) sendDidFinishLoading] + 62
8 Foundation 0x351841b4 _NSURLConnectionDidFinishLoading + 72
9 CFNetwork 0x302957e0 URLConnectionClient::_clientDidFinishLoading(URLConnectionClient::ClientConnectionEventQueue*) + 212
10 CFNetwork 0x30284b00 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent, XClientEventParams>*, long) + 132
11 CFNetwork 0x30284d7c URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent, XClientEventParams>*, long) + 768
12 CFNetwork 0x3028497c URLConnectionClient::processEvents() + 92
13 CFNetwork 0x30284844 MultiplexerSource::perform() + 184
14 CFNetwork 0x30284780 MultiplexerSource::_perform(void*) + 4
15 CoreFoundation 0x375518ca __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 8
16 CoreFoundation 0x37521ec6 __CFRunLoopDoSources0 + 378
17 CoreFoundation 0x375216f2 __CFRunLoopRun + 258
18 CoreFoundation 0x37521504 CFRunLoopRunSpecific + 220
19 CoreFoundation 0x37521412 CFRunLoopRunInMode + 54
20 Foundation 0x35156238 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 200
21 Foundation 0x351d52ea -[NSRunLoop(NSRunLoop) runUntilDate:] + 62
22 MyCrashingApp 开发者_如何学JAVA 0x000148a4 -[URLDownload startDownload:] (URLDownload.m:57)
23 CoreFoundation 0x375466fc __invoking___ + 60
24 CoreFoundation 0x375465d6 -[NSInvocation invoke] + 110
25 Foundation 0x351cd8fe -[NSInvocationOperation main] + 78
26 Foundation 0x3516054a -[__NSOperationInternal start] + 658
27 Foundation 0x351602a8 -[NSOperation start] + 16
28 Foundation 0x35174b8c ____startOperations_block_invoke_2 + 40
29 libSystem.B.dylib 0x35e5d268 _dispatch_call_block_and_release + 12
30 libSystem.B.dylib 0x35e5d788 _dispatch_worker_thread2 + 120
31 libSystem.B.dylib 0x35de6970 _pthread_wqthread + 392
32 libSystem.B.dylib 0x35ddd2fc start_wqthread + 0
Thread 3:
0 libSystem.B.dylib 0x35d5b40c semaphore_wait_signal_trap + 8
1 libSystem.B.dylib 0x35d91448 semaphore_wait_signal + 4
2 libSystem.B.dylib 0x35d5d4ec pthread_mutex_lock + 376
3 WebCore 0x330777c4 _WebTryThreadLock(bool) + 44
4 WebCore 0x33077e5c WebRunLoopLock(__CFRunLoopObserver*, unsigned long, void*) + 28
5 CoreFoundation 0x3752a808 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 12
6 CoreFoundation 0x3752a636 __CFRunLoopDoObservers + 494
7 CoreFoundation 0x375219a2 __CFRunLoopRun + 946
8 CoreFoundation 0x37521504 CFRunLoopRunSpecific + 220
9 CoreFoundation 0x37521412 CFRunLoopRunInMode + 54
10 WebCore 0x3318bd14 RunWebThread(void*) + 524
11 libSystem.B.dylib 0x35de5b44 _pthread_start + 364
12 libSystem.B.dylib 0x35dd77a4 thread_start + 0
Thread 4:
0 libSystem.B.dylib 0x35de72fc __workq_kernreturn + 8
1 libSystem.B.dylib 0x35de6b50 _pthread_wqthread + 872
2 libSystem.B.dylib 0x35ddd2fc start_wqthread + 0
Thread 5:
0 libSystem.B.dylib 0x35d5b3b0 mach_msg_trap + 20
1 libSystem.B.dylib 0x35d5d894 mach_msg + 60
2 CoreFoundation 0x37521f7c __CFRunLoopServiceMachPort + 88
3 CoreFoundation 0x37521780 __CFRunLoopRun + 400
4 CoreFoundation 0x37521504 CFRunLoopRunSpecific + 220
5 CoreFoundation 0x37521412 CFRunLoopRunInMode + 54
6 Foundation 0x3517ec4e +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:] + 210
7 Foundation 0x3515cb8a -[NSThread main] + 42
8 Foundation 0x35155b90 __NSThread__main__ + 908
9 libSystem.B.dylib 0x35de5b44 _pthread_start + 364
10 libSystem.B.dylib 0x35dd77a4 thread_start + 0
Thread 6:
0 libSystem.B.dylib 0x35d848d8 select$DARWIN_EXTSN + 20
1 CoreFoundation 0x3755aa34 __CFSocketManager + 356
2 libSystem.B.dylib 0x35de5b44 _pthread_start + 364
3 libSystem.B.dylib 0x35dd77a4 thread_start + 0
Thread 0 crashed with ARM Thread State:
r0: 0x00000000 r1: 0x00000000 r2: 0x3e73eb48 r3: 0x00000000
r4: 0x0048aba0 r5: 0x00000000 r6: 0x3e73eaa8 r7: 0x0048aba0
r8: 0x0048af00 r9: 0x3e25d978 r10: 0x35ce9029 r11: 0x0048af00
ip: 0x3e6a4c58 sp: 0x2fdfe298 lr: 0x3596ed90 pc: 0x0048af00
cpsr: 0x40070010
Any answers, even if they just point me in the right direction are appreciated.
So here's what helped solve this problem. I hope it helps others too.
The AppStore build I created was using Xcode 3.2.6
Apparently there's some problem with XCode's linker as of last year. I stumbled in to this when trying to mess around with -all_load flag errors.
Now, when I create the same build (no code change, no settings changes) using XCode4, the adhoc version doesn't crash.
For now I am updating the appStore version with this build. If anyone reading this answer thinks knows the technical reasoning behind this behavior of XCode, please do post your answer. It'll help save many hours of headBangingAgainstTheWall!
using the following keywords for googling helped:
"-all_load" crashes
RNBRunLoopLaunchInferior (this showed up in the console when the app crashed and printed RNBRunLoopLaunchInferior DNBProcessLaunch() returned error: 'DRHT')
hope this helps!
精彩评论