前言
正所謂工欲善其事必先利器.
特此在這里把我個人覺得在Xcode里比較實用的調試方法給總結出來和分享給大家.當然大家有什么更好的調試技巧或者我哪里需要改善,還望多多和我交流交流~!!
以下幾點是我個人在IOS開發中用的比較多的調試技巧,本篇將會介紹三種方法來玩斷點.
以下是目錄:
1. 給斷點加判斷條件和LLDB命令
1)
給斷點加一個判斷條件,例如在一個for循環中,當i==5的時候才讓斷點生效並且暫停app, (如下圖)

2) 給斷點添加LLDB命令, 例如使用
po self 命令(如下圖) ps:不知道什么是LLDB或者對LLDB命令了解比較少的可以自行去Google或者百度一下即可
點擊這里可以調到蘋果官網查看LLDB命令大全


符號斷點(Symbolic breakpoint) 可以中斷某個函數的調用,比如你想看某一個方法何時被調用,就可以加符號斷點, 但我個人感覺此斷點的應用基本是用來找controller比較常用,而我也一般都是用此斷點來進行controller的追蹤.
舉個列子:一個項目里都有很多頁面(controller), 而要快速上手app找到每個頁面對應的controller, 通常直接看代碼或者打斷點追蹤都是比較痛苦的,比如現在有三個詳情頁,而我想修改其中一個controller的背景顏色,對於項目不熟悉或者新接手項目的,得要從切入口一個一個追蹤才能追蹤到我們想要修改的那個詳情頁.這樣效率極低.然而現在, 我們可以通過符號斷點來可視化找出我們需要的頁面所對應的controller!
leader再也不用擔心我找不到controller啦(如下gif圖)

在維護項目和進行二次開發時,經常debug要找出這個view或者button響應的方法.雖然打斷點追蹤或者直接看源代碼也能找出button的target,但是這樣效率是很慢的. 現在有一個LLDB命令可以在運行時添加一個響應事件的斷點,步驟如下:
1) 在app運行時點擊pause program execution 便會暫停app,在此就可以輸入LLDB命令啦(如下圖)

2
)
在LLDB控制台中輸入命令 : br s -r . -s Demo1 並且響應Breakpoint XXX locations 就代表成功了. (如下圖)

注意: 其中紅色字體(
br s -r . -s Demo1 命令中的Demo1) 指的是你當前項目的項目名Breakpoint XXX locations 中的XXX 顯示的是一數字,每個項目顯示的數字是不一樣的!!!
3) 回到app中, 點擊你要查看某一個view or button的響應
4) 然后在回到Xcode的控制台中點擊continue 按鈕就能跳轉到你所點擊view的響應方法,如下圖

完整的操作流程請參考如下gif圖
(注:此圖地址來自網易,如未正常顯示,請刷新一下當前頁面即可.)

總結: 這里主要講解了我個人在開發過程用的比較多一些斷點調試技巧,當然還有其他調試技巧用的不是那么多, 所以在這里就不在贅述了.如果我有哪里寫的不足還望多多指點.當然您有其他的調試技巧也可以分享給我噢!