iOS調試篇: 崩潰調試 exc_bad_access(code=1,address=0x10)


今天在測試過程中,發現了一個問題, 就是在ios 8以上的機器測試沒有問題,在ios 7上面測試很容易出現崩潰, 直接來了一句exc_bad_access(code=1,address=0x10),毫無頭緒, 就查資料,步驟如下:

1. 設置僵屍對象, 獲取更多的提示信息

結果:真的獲取了更多的信息:message sent to deallocated instance 

2. 然后 網上又搜資料, 大概的意思就是 通過找的已經釋放的地址,通過LLDB找到內存的釋放歷史,具體可參考:

http://blog.csdn.net/fg313071405/article/details/17448425

但是我的因為是真機出現的崩潰,在電腦上找不到具體的內存釋放地址。

3. 很明顯這是因為一個UIViewController釋放后,又再次向這個VC調用了某些請求導致。而且根據log發現該VC是執行了dealloc方法,這就說明可能是在VC中設置了 xxx.delegate=self; 當VC釋放后,這個xx還沒有被釋放,所以xx的回調方法還在調用delegate即這里的vc, 所以崩潰就發生了。 

解決辦法是在dealloc中設置xx.delegate = nil;即可參考:http://blog.csdn.net/smking/article/details/43775523

仔細找了下 原來

self.navigationController.delegate = self; 因為這句。

最后:bug 解決 


免責聲明!

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



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