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

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,该UIViewController已经被推入到NavigationController中以获取JSON并显示其内容。这是AFNetworking引起的崩溃(在线程5中)吗?还是我的代码有缺陷?我真的卡住了,这种情况经常发生。非常感谢任何帮助或问题!


1
尝试使用Instruments查找僵尸对象了吗?僵尸对象的历史记录可能会提供一些线索... - user1885297
1
你是否正在使用 UIWebView?否则,对 HTMLDocument 的引用就没有意义了。另外,你能访问控制台日志吗?有任何在那里记录的消息吗? - user1885297
1
一些想法。MarkupHelper 只是一个字符串实用工具,因此它不太可能涉及其中。而且,没有 AF 操作正在进行;线程 5 只是在等待委托回调,并且始终运行,一旦启动了 AF 操作。我会把重点放在广告库上。 - user1885297
我目前也遇到了完全相同的崩溃,怀疑是Google Maps的问题。你也在使用Google Maps吗? - Johnny Sørensen
1
我们正在处理一个崩溃问题,它显示了与此相同的堆栈跟踪。我们没有使用地图功能或广告库,所以那可能不是原因。我们在启动时使用了UIWebView。如果/当我弄清楚我们应用程序上发生了什么,我会发布详细信息。 - Dave Klotz
显示剩余9条评论
2个回答

2
根据崩溃日志,问题不在第5线程,而是在第0线程。 布莱恩在他的博客文章中提供了一些关于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查询),当您拥有缓慢/不可靠的网络连接时,定时器成为图片中的经典方式。使用苹果的网络链路调节器来模拟这种情况。这可能会显示出WebKit中的问题。

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接