解決iPhone 模擬器 XCode gdb 查找無法定位程序崩潰
iPhone 模擬器 XCode gdb 查找無法定位程序崩潰是本文介紹的內(nèi)容,相信大多數(shù)iphone開發(fā)者都知道在 Executable中設(shè)置NSZombieEnable來顯示程序崩潰的位置和具體的信息,但是很多時(shí)候程序崩潰的時(shí)候都是報(bào)出一些一些讓我們無法知曉的提示。如:
- FREED(id):message release sent to freed object=0x1154a90
等一些信息,大概知道其意思,但是我們無法定位在什么地方,這樣就相當(dāng)于沒有提示信息一樣。
無意間這周在網(wǎng)上發(fā)現(xiàn)了另一個提示指令可以更清晰的定義到問題的地方----------就是在your project ---> Executable -->(雙擊打開)Arguments 然后添加 MallocStackLogging 并且設(shè)置 YES ----> 然后就可以在程序崩潰的時(shí)候就可以gdb 一些有用的崩潰信息了。
例如之前的
- FREED(id):message release sent to freed object=0x1154a90
這個信息
- shell malloc_history <id> <address>
現(xiàn)在我們就可以在gdb 中打印 shell malloc_history 947 0x1154a90 這樣就可以定位到具體的某個方法了
當(dāng)然也可以在終端中去運(yùn)行 就要去掉以上的shell 指令 如 malloc_history <id> <address>
簡直明朗如下圖的配置和顯示
1、
2、
3、友們點(diǎn)擊放大即可看清楚
這樣我們就可以定位到 [TestViewCtr showNewPersonController]的data釋放問題 這樣我們就可以修改了
4、
小結(jié):關(guān)于解決iPhone 模擬器 XCode gdb 查找無法定位程序崩潰 的內(nèi)容介紹完了希望本文對你有所幫助!