15

我在 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 中)?或者它可能是我的代码中的一个缺陷?我真的被卡住了,而且经常发生。非常感谢任何帮助或问题!

4

2 回答 2

2

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

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

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

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

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

无论如何,计时器代码已被重新​​设计: https ://trac.webkit.org/changeset/143210

所以我认为最好的选择是看看最新的 iOS 是否有过这种崩溃,或者最新的 6.x (6.1)。

如果不这样做,并假设您无法重现该问题,因为您正在进行网络查询(和 DB 查询),计时器出现的经典方式是当您的网络连接速度较慢/不可靠时。使用 Apple 的 Network Link Conditioner 来模拟这种情况。这可能会显示 WebKit 中的问题。

于 2014-09-02T22:54:56.420 回答
0

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

于 2013-06-03T14:28:28.897 回答