iOS調試奇巧淫技(二)之LLDB
簡單介紹
LLDB是一個開源的內建於XCode的調試工具,可以安裝C++或者Python外掛程式。與LLDB相對應的是gdb,主要存在於基於UNIX平台的程式調試工具。
使用作用
在開發中我們經常要調試代碼,用到最多的就是print和NSLog輸出,這樣的做法在某些程度下並不太高效,LLDB的引進在某些時候替代列印函數,提高測試效率。
用法1.help
help命令的作用不言而喻,當我們遇到某個命令不知道怎麼用的時候可以通過help命令調用系統命令介紹文檔,來瞭解更多細節
比如:
help print
非常詳細的列印出help的具體參數用法
2.print
列印命令的用法也是不言而喻的,可以用來列印某個值
或者可以簡寫為 p (變數名稱)
3.expression
當我們想改變一個變數的值的時候用到了expression命令 簡化為 expr 、e
當然其實你也可以用print命令進行列印
通過我們可以清晰的比較到 print和expression的區別是:print並沒有改變實際參數的值,類比性的使變數稱為你所意願的值,而expression不同,是實實在在的改變了變數的值。
4.process continue 命令
簡稱 continue 或者 c。
作用於上面第一個按鈕一樣,取消程式的暫停,允許程式繼續執行下去
5.thread step-over 命令
簡稱 next,或者n
作用以黑盒的方式執行一行代碼,如果遇到的是一個函數,那麼會執行這個函數,而不是只跳進函數裡面的一行代碼
6.thread step in命令
簡稱 step 或者s
當我們想跳進一個函數裡面逐步偵錯工具的時候可以用這個命令。如果當前行不是函數則,這個命令和5.thread step-over 命令作用一致。
7.step out命令
當我們在一個函數中,想跳出這個函數,則可以運用這個命令
8.frame info命令
運行這個命令將會告訴你當前行數和源碼檔案,以及其他一些資訊
9. Thread Return命令
我們有時候調試不想執行某個函數的代碼,可以藉助這個命令在函數的開頭直接給這個函數的傳回值,這樣函數以後的代碼就沒有機會,執行直接給了個人為的傳回值 。這個命令太強大了,用時要謹慎細心,偽裝者,絕對的偽裝者。
10.breakpoint list
簡稱 br li
擷取項目中斷點的具體位置和資訊並列印
11.breakpoint enable、 breakpoint disable
對某個具體斷點開啟或關閉
12 breakpoint set
手動建立斷點
總結以上就是LLDB命令最常用的命令了,是不是歡呼LLDB如此的強大,完全在很多時候可以替代低效率的NSLog函數方法,當然LLDB還有很多命令,最後附上LLDB命令表查詢手冊,讓我們為這麼便捷的開發,為iOS、為蘋果歡呼吧!