在行號那兒點一下就加上了,最經常使用的斷點,略。html
不少時候問題代碼是被高頻調用直到特定條件下才出現問題的,這種時候可使用條件斷點。數組
在任意斷點右擊選擇Edit Breakpoint便可編輯條件。工具
有時候咱們沒有源碼只有頭文件,不方便加普通斷點,可使用符號斷點。在斷點界面點擊 + ,選擇Ad Symbolic Breakpoint,便可添加符號斷點。性能
拋出Objc異常時的斷點,因爲Objc能捕獲異常的場景很是少,所以用處比較有限。學習
p/po(print/print object)優化
calldebug
expr指針
bt調試
更多參考iOS——調試工具LLDB學習htm
用於對野指針問題的分析。
野指針問題致使的crash堆棧每每千奇百怪,其根本緣由是對象被釋放後,對應的內存是不肯定何時會被覆蓋多少的,形成後面訪問時可能正常也可能crash。
殭屍對象就是消除這種不肯定性的方法,在對象被釋放時,會生成一個殭屍類,把對應內存中的isa替換掉,指向這個殭屍類。這樣在經過野指針訪問這個對象時就能夠100%捕獲了。
此功能能夠在「Edit Scheme…」 —> 「Run」 —> 「Diagnostics」 —> 「Zombie Objects」中打開,應當只在debug時使用,對性能影響比較大。
Address Sanitizer是個更底層一點的手段,殭屍對象只對Objc對象的野指針有效,而Address Sanitizer能夠檢查任意內存訪問錯誤的問題。典型場景如C的數組越界。
Time Profile用於檢測CPU使用耗時,方便優化性能問題。
若是某個操做存在性能問題,能夠在操做前,開啓Time Profile Record,操做後Stop。Time Profile會記下期間全部方法的CPU耗時,並從高到低排列。因而就能夠方便地找到耗性能的瓶頸進行鍼對性地優化。
Allocations工具用於分析內存問題。
在應用啓動後,特定操做先後進行打點,便可看到期間全部的內存增加來源。
對於可復現的內存問題很是方便定位。