最原始的方式可能是在 VC 的 dealloc 方法中輸出打印頁面已經(jīng)被釋放的日志参淫。
下面介紹一種方式,無侵入性愧杯,也不需要編寫任何代碼黄刚,但局限性在于只能Xcode在跑工程時(shí)使用。
只需要執(zhí)行下面四步民效,從此一生無憂憔维。
- 轉(zhuǎn)到Breakpoint Navigator(菜單視圖>導(dǎo)航器>顯示Breakpoint Navigator或? - command+ 8)
- 單擊左下角+,并選擇Symbolic Breakpoint
- 按照如下設(shè)置
(1)設(shè)置Symbol值-[UIViewController dealloc]
(2)Log Message將消息設(shè)置為要打印到控制臺的任何內(nèi)容畏邢,將其設(shè)置為--- dealloc @(id)[$arg1 description]@
(3)勾選Automatically continue after evaluating actions選項(xiàng)业扒,因?yàn)槲覀儾幌M{(diào)試器在釋放視圖控制器時(shí)暫停
- 配合控制臺的過濾功能,非常直觀能看到VC是否被釋放
擴(kuò)展
其實(shí)從上面我們就可以知道舒萎,Symbolic Breakpoint是一個(gè)非常強(qiáng)大的斷點(diǎn)調(diào)試功能程储,只需要我們改變設(shè)置Symbol值,我們就可以監(jiān)測到指定某個(gè)方法的調(diào)用時(shí)機(jī)。例如監(jiān)控視圖的銷毀章鲤,那就設(shè)置Symbol值為-[UIView dealloc]摊灭。這個(gè)方面的使用,特別是在分析crash败徊,涉及到匯編層面時(shí)帚呼,特別有效。