2017-07-31 156 views
-3

我正在使用iOS框架,一個應用程序崩潰。不知道問題出在哪裏。基於日誌,我認爲一個對象正在手動釋放,但隨後是自動釋放,再次導致崩潰。有沒有人看到過這樣的崩潰?不知道這是由我的框架還是使用它的應用程序引起的。iOS崩潰,未知原因

Crashed: com.apple.root.user-initiated-qos 
0 libobjc.A.dylib    0xfffffffff objc_object::release() + 8 
1 libobjc.A.dylib    0xfffffffff (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 724 
2 CoreFoundation     0xfffffffff _CFAutoreleasePoolPop + 28 
3 libdispatch.dylib    0xfffffffff _dispatch_client_callout2 + 12 
4 libdispatch.dylib    0xfffffffff _dispatch_apply_invoke_and_wait + 165 
5 libdispatch.dylib    0xfffffffff dispatch_apply_f + 650 
6 CoreFoundation     0xfffffffff -[__NSSetM enumerateObjectsWithOptions:usingBlock:] + 295 
7 MyFramework     0xfffffffff MyFunction + 18550 
8 MyFramework     0xfffffffff MyFunction + 18450 
9 libdispatch.dylib    0xfffffffff _dispatch_call_block_and_release + 24 
10 libdispatch.dylib    0xfffffffff _dispatch_client_callout + 16 
11 libdispatch.dylib    0xfffffffff _dispatch_queue_serial_drain + 928 
12 libdispatch.dylib    0xfffffffff _dispatch_queue_invoke + 884 
13 libdispatch.dylib    0xfffffffff _dispatch_queue_override_invoke + 344 
14 libdispatch.dylib    0xfffffffff _dispatch_root_queue_drain + 540 
15 libdispatch.dylib    0xfffffffff _dispatch_worker_thread3 + 124 
16 libsystem_pthread.dylib  0xfffffffff _pthread_wqthread + 1096 
17 libsystem_pthread.dylib  0xfffffffff start_wqthread + 4 
+2

你試過發生設置一個Exce ption斷點還是使用了內存工具?因爲這裏沒有足夠的繼續。 – Abizern

+0

是的,問題是我無法重現崩潰。從我的框架中列出的日誌功能非常簡單,這導致我相信它不是我的框架導致崩潰。我希望有人會熟悉objc_object :: release()和(匿名命名空間):: AutoreleasePoolPage :: pop(void *)調用。 –

+0

也許你試圖重現崩潰並獲得序列使其崩潰,然後只有您可以正確調試它。 – GeneCode

回答

1

當你看到在堆棧_dispatch_root_queue_drain崩潰跟蹤它意味着一些塊已經在該隊列已經執行,自動釋放池被耗盡

你需要檢查對象的任何內存泄漏被釋放這樣的碰撞時,在線程中執行塊,但正與新對象發行再次調用,所以嘗試檢查下面的鏈接,它可以幫助也許它因內存問題和對象重新釋放

https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/EradicatingZombies.html