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