未知的崩溃原因(附带CrashReport)SIGTRAP。 AFNetworking?

我在AppStore中的应用程序中不断收到这些崩溃。 CrashReport总是如下所示:

Incident Identifier: 986486D7-F013-4102-B9E3-84F923223914 CrashReporter Key: [TODO] Hardware Model: iPhone4,1 Process: MyApp [57885] Path: /Users/USER/MyApp.app/MyApp Identifier: de.myapp.iphone Version: 12475 Code Type: ARM Parent Process: launchd [1] Date/Time: 2012-12-20 15:48:53 +0000 OS Version: iPhone OS 6.0.1 (10A523) Report Version: 104 Exception Type: SIGTRAP Exception Codes: #0 at 0x3abd62be Crashed Thread: 0 Thread 0 Crashed: 0 CoreFoundation 0x363582be CFRelease + 18 1 WebCore 0x383de395 WebCore::stopSharedTimer() + 33 2 WebCore 0x38433515 WebCore::TimerBase::~TimerBase() + 45 3 WebCore 0x3846003b WebCore::Document::~Document() + 2751 4 WebCore 0x3845f56d WebCore::HTMLDocument::~HTMLDocument() + 81 5 WebCore 0x384e9473 WebCore::JSNodeOwner::finalize(JSC::Handle<JSC::Unknown>, void*) + 79 6 JavaScriptCore 0x321e2067 JSC::WeakBlock::sweep() + 87 7 JavaScriptCore 0x321e22ad JSC::WeakSet::sweep() + 53 8 JavaScriptCore 0x3213d877 JSC::Heap::collect(JSC::Heap::SweepToggle) + 175 9 JavaScriptCore 0x3213cad9 JSC::DefaultGCActivityCallbackPlatformData::timerDidFire(__CFRunLoopTimer*, void*) + 145 10 CoreFoundation 0x363ec5df __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 15 11 CoreFoundation 0x363ec291 __CFRunLoopDoTimer + 273 12 CoreFoundation 0x363eaf01 __CFRunLoopRun + 1233 13 CoreFoundation 0x3635debd CFRunLoopRunSpecific + 357 14 CoreFoundation 0x3635dd49 CFRunLoopRunInMode + 105 15 GraphicsServices 0x3490e2eb GSEventRunModal + 75 16 UIKit 0x37b2b2f9 UIApplicationMain + 1121 17 MyApp 0x00003927 main (main.m:20) Thread 5: 0 libsystem_kernel.dylib 0x3681feb4 mach_msg_trap + 20 1 CoreFoundation 0x363ec045 __CFRunLoopServiceMachPort + 129 2 CoreFoundation 0x363eada3 __CFRunLoopRun + 883 3 CoreFoundation 0x3635debd CFRunLoopRunSpecific + 357 4 CoreFoundation 0x3635dd49 CFRunLoopRunInMode + 105 5 Foundation 0x307f978f -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 255 6 Foundation 0x3089d05d -[NSRunLoop(NSRunLoop) run] + 81 7 MyApp 0x000c3225 +[AFURLConnectionOperation networkRequestThreadEntryPoint:] (AFURLConnectionOperation.m:157) 8 Foundation 0x308a667d __NSThread__main__ + 973 9 libsystem_c.dylib 0x33ab5311 _pthread_start + 309 Thread 6: 0 libsystem_kernel.dylib 0x3681feb4 mach_msg_trap + 20 1 CoreFoundation 0x363ec045 __CFRunLoopServiceMachPort + 129 2 CoreFoundation 0x363eada3 __CFRunLoopRun + 883 3 CoreFoundation 0x3635debd CFRunLoopRunSpecific + 357 4 CoreFoundation 0x3635dd49 CFRunLoopRunInMode + 105 5 Foundation 0x30822bcd +[NSURLConnection(Loader) _resourceLoadLoop:] + 309 6 Foundation 0x308a667d __NSThread__main__ + 973 7 libsystem_c.dylib 0x33ab5311 _pthread_start + 309 Thread 7: 0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24 1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179 2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13 3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231 4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33 5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45 6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83 7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17 8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17 9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11 10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253 11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85 12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361 Thread 8: 0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24 1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179 2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13 3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231 4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33 5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45 6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83 7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17 8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17 9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11 10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253 11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85 12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361 Thread 10: 0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24 1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179 2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13 3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231 4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33 5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45 6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83 7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17 8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17 9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11 10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253 11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85 12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361 Thread 13: 0 libsystem_kernel.dylib 0x3682239c pread + 20 1 libsqlite3.dylib 0x33978109 sqlite3_get_table + 125 2 libsqlite3.dylib 0x339772a7 sqlite3_get_table + 125 3 libsqlite3.dylib 0x33d25fb1 0x33cde000 + 294833 4 libsqlite3.dylib 0x33d13807 0x33cde000 + 219143 5 libsqlite3.dylib 0x33d0d49d 0x33cde000 + 193693 6 libsqlite3.dylib 0x3398648f sqlite3_step + 2143 7 CFNetwork 0x3138276b __CFURLCache::DoBulkLookupAndStoreBasedOnTime(__CFString const*) + 459 8 CFNetwork 0x313c4667 __ExecuteSQLSelectAndCreateResponse_block_invoke_0 + 35 9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11 10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253 11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85 12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361 Thread 17: 0 libsystem_kernel.dylib 0x3683008c __psynch_cvwait + 24 1 libsystem_c.dylib 0x33aadaa5 pthread_cond_timedwait + 45 2 JavaScriptCore 0x320d6c75 WTF::ThreadCondition::timedWait(WTF::Mutex&, double) + 109 3 JavaScriptCore 0x321e8557 JSC::BlockAllocator::blockFreeingThreadMain() + 83 4 JavaScriptCore 0x321fafab _ZN3WTFL19wtfThreadEntryPointEPv + 15 5 libsystem_c.dylib 0x33ab5311 _pthread_start + 309 Thread 18: 0 libsystem_kernel.dylib 0x3683008c __psynch_cvwait + 24 1 libsystem_c.dylib 0x33ab7f19 pthread_cond_wait + 41 2 JavaScriptCore 0x3217bf41 JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode) + 149 3 JavaScriptCore 0x3217be81 JSC::MarkStackThreadSharedData::markingThreadMain() + 145 4 JavaScriptCore 0x321fafab _ZN3WTFL19wtfThreadEntryPointEPv + 15 5 libsystem_c.dylib 0x33ab5311 _pthread_start + 309 Thread 22: 0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24 1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179 2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13 3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231 4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33 5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45 6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83 7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17 8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17 9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11 10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253 11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85 12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361 Thread 25: 0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24 1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179 2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13 3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231 4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33 5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45 6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83 7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17 8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17 9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11 10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253 11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85 12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361 Thread 43: 0 libsystem_kernel.dylib 0x3682239c pread + 20 1 libsqlite3.dylib 0x33978109 sqlite3_get_table + 125 2 libsqlite3.dylib 0x339772a7 sqlite3_get_table + 125 3 libsqlite3.dylib 0x33d25fb1 0x33cde000 + 294833 4 libsqlite3.dylib 0x33d13807 0x33cde000 + 219143 5 libsqlite3.dylib 0x33d0d49d 0x33cde000 + 193693 6 libsqlite3.dylib 0x3398648f sqlite3_step + 2143 7 CFNetwork 0x3138276b __CFURLCache::DoBulkLookupAndStoreBasedOnTime(__CFString const*) + 459 8 CFNetwork 0x313c4667 __ExecuteSQLSelectAndCreateResponse_block_invoke_0 + 35 9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11 10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253 11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85 12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361 Thread 44: 0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24 1 CFNetwork 0x31382619 __CFURLCache::DoBulkLookupAndStoreBasedOnTime(__CFString const*) + 121 2 CFNetwork 0x313c4667 __ExecuteSQLSelectAndCreateResponse_block_invoke_0 + 35 3 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11 4 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253 5 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85 6 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361 Thread 47: 0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24 1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179 2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13 3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231 4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33 5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45 6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83 7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17 8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17 9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11 10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253 11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85 12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361 Thread 49: 0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24 1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179 2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13 3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231 4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33 5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45 6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83 7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17 8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17 9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11 10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253 11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85 12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361 Thread 50: 0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24 1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179 2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13 3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231 4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33 5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45 6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83 7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17 8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17 9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11 10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253 11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85 12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361 Thread 51: 0 libsystem_kernel.dylib 0x36830d98 __workq_kernreturn + 8 1 libsystem_c.dylib 0x33aaaa16 _pthread_wqthread + 366 Thread 0 crashed with ARM Thread State: r0: 0x00000000 r1: 0x5df80157 r2: 0x1ddd4000 r3: 0x38596026 r4: 0x3be2c86c r5: 0x00000000 r6: 0x00000000 r7: 0x2fd1be1c r8: 0x00000000 r9: 0x00293498 r10: 0x00388800 r11: 0x04432d90 ip: 0x3bd68a50 sp: 0x2fd1bde8 lr: 0x368ba395 pc: 0x3abd62be cpsr: 0x60000030 

我基本上在UIViewController中使用一个AFJSONRequestOperation,它已经被推到一个NavigationController来获取一个JSON它显示其内容。 是AFNetworking导致崩溃(在线程5)? 或者它可能是我的代码中的缺陷? 我很困难,经常发生。 任何帮助或问题,非常感谢!

根据崩溃,它不是线程5的问题; 这是线程0中的一个问题。

Brian在他的博客文章中增加了一些关于计时器如何在webkit中运行的背景信息。

http://brrian.tumblr.com/post/13951629341/how-webkits-event-model-works

有趣的是,问题操作系统是6.0.1,而不是新版本6.1,也没有7.x(截至编写时)。

在CFRelease期间发生崩溃,并且当资源已经被释放时,这往往会发生。 我的build议是看看问题是否发生在任何新的操作系统,因为它听起来像一个WebKit的错误。 Webkit是负责定时器的代码。

计时器代码已经重新工作: https : //trac.webkit.org/changeset/143210

所以我认为最好的select是看看最新的iOS有没有崩溃,或最新的6.x(6.1)。

如果没有这个function,并且假设你不能重现这个问题,那么因为你的networking查询(和数据库查询)正在进行,所以经典的定时器出现在networking连接缓慢/不可靠的时候。 使用Apple的Network Link Conditioner来模拟这种情况。 这可能会在WebKit中显示出问题。

检查某个广告是否打开了iTunes。 也许你在应用程序的初始化中打开了太多的线程。 您可以尝试排队这些请求。 只是随意的想法..