LLDB簡(jiǎn)介
LLDB是LLVM下的調(diào)試器筝野。Xcode從4.0開始編譯器開始改用LLVM戚绕,相應(yīng)的調(diào)試器也從gdb改為L(zhǎng)LDB筹燕,而從 Xcode5.0開始所有工程也被自動(dòng)設(shè)置為使用LLDB恶耽。
相比于原先的GCC編譯器,LLVM編譯器有如下優(yōu)點(diǎn):
- LLVM 編譯器是下一帶開源的編譯技術(shù).完全支持C, Objective-C, 和 C++.
- LLVM 速度比 GCC快兩倍,建立的程序也會(huì)運(yùn)行的更快. 因?yàn)樗玫睦矛F(xiàn)代的芯片的結(jié)構(gòu).
- LLVM和Xcode 4完全的整合在一起.包括關(guān)鍵字高亮,代碼完整性等全都是由LLVM語法分析器來分析的. 這樣可以在編輯的時(shí)候就可以很好的了解你的代碼.
輸出對(duì)象
在LLDB中提供了po和p兩個(gè)命令來輸出對(duì)象或變量的值决左,其中:
- po代表print object愕够,可以輸出一個(gè)對(duì)象description方法中可以打印的內(nèi)容走贪;
- p代表print,可以輸入變量的值惑芭。
斷點(diǎn)管理
在Xcode中坠狡,可以在代碼的任意位置添加斷點(diǎn)(breakpoint),對(duì)于斷點(diǎn)的管理本質(zhì)上也是由LLDB操作的遂跟,只不過通過圖形化的方式實(shí)現(xiàn)了LLDB中的命令逃沿。
LLDB中有關(guān)斷點(diǎn)管理的常用命令有:
- 查看所有斷點(diǎn):breakpoint list (簡(jiǎn)化命令br l)
- 繼續(xù)執(zhí)行:continue (簡(jiǎn)化命令c)
- StepOver: next (簡(jiǎn)化命令n)
- StepIn: step (簡(jiǎn)化命令s)
- 取消某個(gè)斷點(diǎn): breakpoint disable 斷點(diǎn)編號(hào) (簡(jiǎn)化命令br dis 斷點(diǎn)編號(hào))
- 刪除某個(gè)斷點(diǎn): breakpoint delete 斷點(diǎn)編號(hào) (簡(jiǎn)化命令br del 斷點(diǎn)編號(hào))
- 終止程序運(yùn)行:kill
查看棧地址對(duì)應(yīng)的代碼位置
image 命令可用于尋址,有多個(gè)組合命令幻锁,比較實(shí)用的用法是用于尋找棧地址對(duì)應(yīng)的代碼位置凯亮,在查錯(cuò)過程中是可以使用。
- 查看地址對(duì)應(yīng)的代碼位置:image lookup --address 內(nèi)容地址(簡(jiǎn)化命令im loo --a 代碼位置)
更多iOS開發(fā)教程越败,歡迎訪問我的博客:www.99ios.com