一代兵、LLDB
什么是LLDB
LLDB是一個(gè)有著 REPL 的特性和 C++ ,Python 插件的開源調(diào)試器植影。Xcode中綁定了LLDB涎永,調(diào)試器允許你在程序運(yùn)行時(shí)暫停它羡微,可以查看變量的值妈倔,執(zhí)行自定的指令。
在程序里你需要的地方設(shè)置斷點(diǎn)毅哗。當(dāng)斷點(diǎn)斷住的時(shí)候你就能看到我們進(jìn)入LLDB調(diào)試器了黎做,下面這個(gè)界面對(duì)于iOS開發(fā)者來說應(yīng)該不陌生了:
幾個(gè)常用命令
1. help
help命令可以查看LLDB的所有命令:
它也可以查看某一條命令的使用幫助蒸殿,比如:help print會(huì)打印print命令的使用幫助:
2.print
print命令的簡化方式有p宏所,po等等爬骤。p輸出的是基本類型霞玄,po輸出的Objective-C對(duì)象,調(diào)試器會(huì)輸出這個(gè) object 的 description惰爬。
3.expression命令
expression的簡寫就是e〈园妫可以用來執(zhí)行一條語句偏序。例如:
LLDB還有很多命令可以使用寇漫,具體用法大家可以看文檔
二殉摔、Chisel
什么是Chisel
Chisel是facebook開源的一個(gè)LLDB命令的集合逸月,它里面簡化和擴(kuò)展了LLDB的命令碗硬。使用它會(huì)更方便的調(diào)試我們的程序。在它的GitHub上有詳細(xì)的安裝方式挽懦,這里就不贅述了。
常用命令:
他的所有命令在它的wiki上都列出來了冀偶,這里我挑幾個(gè)示范一下。
1. pviews
這個(gè)命令可以按層級(jí)遞歸打印指定view的所有subView稠曼,相當(dāng)于 UIView 的私有輔助方法 [view recursiveDescription]霞幅。如果不指定view的話就是默認(rèn)window:
2. pvc
這個(gè)命令遞歸打印出viewController的層級(jí)司恳,相當(dāng)于 UIViewController 的一個(gè)私有輔助方法 [UIViewController _printHierarchy] :
3. visualize
它可以使用Mac的預(yù)覽打開一個(gè) UIImage, CGImageRef, UIView, 或 CALayer。 我們其實(shí)可以用這個(gè)功能來截圖或者查看一個(gè)view的具體內(nèi)容:
(lldb)visualize 0x7feb5cf18210(lldb)visualize self.view
4. mask/unmask
mask用來在view或者layer上覆蓋一個(gè)半透明的矩形铅鲤, unmask解除邢享。當(dāng)我們想找一個(gè)view的時(shí)候可以使用骇塘。
(lldb)mask self.imageView(lldb)unmask 0x7f8732e037b0
5. border/unborder
border可以給view或者layer添加邊框款违,unborder解除插爹。當(dāng)我們想找一個(gè)view的時(shí)候可以使用赠尾。
(lldb)border self.imageView(lldb)unborder 0x7f8732e037b0
6. show/hide
顯示隱藏一個(gè)view或者layer。
(lldb)hide self.imageView(lldb)show self.imageView
7. caflush
這個(gè)命令用來刷新UI寸宵,當(dāng)我們改變了UI的時(shí)候邓馒,不用重新啟動(dòng)疏遏,使用caflush刷新UI就行救军。
8. presponder
打印響應(yīng)者鏈:
9. pclass
打印指定對(duì)象的class的繼承關(guān)系:
10. pjson
打印一個(gè)字典或者數(shù)組的json樣式戳寸。
11. slowanim/unslowanim
減慢動(dòng)畫的效果,檢查一個(gè)動(dòng)畫哪里有問題時(shí)可以使用拷泽。
12. pdocspath
打印App的Documents路徑:
13. fv & fvc
這兩個(gè)命令是用來搜索當(dāng)前內(nèi)存中存在的view和viewController實(shí)例的命令疫鹊,支持正則搜索。
14. taplog
點(diǎn)擊某個(gè)view時(shí)司致,程序會(huì)暫停拆吆,會(huì)打印被點(diǎn)擊的view。
15. pcurl
把一個(gè)NSURLRequest (HTTP)打印成curl命令脂矫。
作者:iOS_小松哥
鏈接:http://www.reibang.com/p/9284dc8b5c2a
來源:簡書
著作權(quán)歸作者所有枣耀。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處庭再。