iphone 模擬器 XCode gdb 尋找無法定位的程式崩潰

來源:互聯網
上載者:User

相信大多數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、

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.