XPC connection interrupted


用Analysis 靜態分析代碼,發現了一些問題,修改之后,然后用Instrument -> Leaks對內存做動態分析,發現一個錯誤:

 

控制台報錯:XPC connection interrupted 

調試報錯:libsystem_plantform.dylib'OSAtomicDequeue$variant$mp':

libsystem_platform.dylib`OSAtomicDequeue$VARIANT$mp:

   0x181d178f8 <+0>:  mov    x8, x0

    0x181d178fc <+4>:  ldaxr  x0, [x8]

    0x181d17900 <+8>:  cbz    x0, 0x181d17914           ; <+28>

->  0x181d17904 <+12>: ldr    x9, [x0, x1]   #Thread 19: EXC_BAD_ACCESS (code=1, address=0x5a74d288)

    0x181d17908 <+16>: stxr   w10, x9, [x8]

    0x181d1790c <+20>: cbnz   w10, 0x181d178fc          ; <+4>

    0x181d17910 <+24>: ret    

    0x181d17914 <+28>: clrex  

    0x181d17918 <+32>: ret   

 

調試儀表盤上線程信息:

 

>Thread 19

 0 OSAtomicDequeue$VARIANT$mp

   7 thread_start

 

 如果關掉Instrument, 是不影響程序運行的。我不只是一次發現這個控制台錯誤了,也沒有發現好的消除該錯誤的方法。另外在用Instrument檢查的時候,是沒有發現內存泄漏的小紅叉的,全是綠色的對號。

 

關於XPC: OBJCCN上有一篇詳細的文章

https://objccn.io/issue-14-4/

網上大多數的解決思路是看當前錯誤發生在哪個線程,如果創建線程或者隊列的時候都是用了標識符,就能很快定位到出錯位置,但是我這次遇到的問題,錯誤發生在系統的動態鏈接庫內部,無解,從字面意思上來看,也像是發生在主線程。

 

主線程中做的事情太多了,而且是一個抽屜界面,不知道錯誤發生在哪個控制器的那個環節。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM