iOS調試奇巧淫技(二)之LLDB


一篇我們介紹了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、為蘋果歡呼吧!


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com