斷點調(diào)試是遇到問題時的必用套路什乙,但是很多時候挽封,普通斷點并不能滿足需求,下面簡單介紹兩種更好用的斷點臣镣。
1辅愿、條件斷點
當(dāng)我們需要在循環(huán)里加斷點,并針對滿足某種條件的一些迭代時忆某,如果用普通斷點点待,就得不停地“Continue program execution”,直至等到目標(biāo)迭代弃舒,這樣的做法顯然太低效了癞埠。那么來看看條件斷點是怎么玩的:


2、符號斷點
**** 當(dāng)我們需要調(diào)試的代碼是在框架的實現(xiàn)文件里時聋呢,普通斷點根本沒法添加苗踪,因為框架的實現(xiàn)文件是不可見的。這時候就需要用到符號斷點了削锰,例如對于一些無法重現(xiàn)的crash通铲,可以添加一個拋異常函數(shù)objc_exception_throw的符號斷點來守株待兔:


這樣,當(dāng)發(fā)生crash器贩,就可以拿到具體的堆棧了颅夺。不過,符號斷點沒法預(yù)先和特定的業(yè)務(wù)代碼綁定蛹稍,例如objc_exception_throw是所有業(yè)務(wù)模塊拋異常都會調(diào)用的吧黄。