前言
在開發(fā)中一定需要到調(diào)試跟蹤舅世,但是很多開發(fā)者雖然做過很多的項目,但是未必了解開發(fā)中有哪些調(diào)試命令可以幫助我們開發(fā)者更快更好地定位到問題所在螺垢。
本篇文章主要是講解在開發(fā)中如何利用LLDB來Debug尖昏。首先會講一些基礎(chǔ)知識,主要是幫助新手們學(xué)習(xí)如何去調(diào)試聚凹。對于一些比較高級的操作割坠,不會也沒有關(guān)系,但是如果能夠掌握得了的話妒牙,會更方便更快速地查找問題彼哼。
基本調(diào)試操作
從上圖中,我們八個按鈕湘今,我們講講前五個按鈕:
- 1 第一個按鈕點擊就會收起這一欄目了敢朱,也就看不見了。
- 2 第二個按鈕:如果為藍色摩瞎,就是斷點有效拴签。如果點擊它變成灰色,就是所有斷點不起作用愉豺。
- 3 第三個按鈕:是繼續(xù)的意思篓吁,會讓程序從斷點處恢復(fù)繼續(xù)往下運行,我們點了這個按鈕后蚪拦,應(yīng)用就會恢復(fù)正常運行狀態(tài)杖剪。
- 4 第四個按鈕是:單步執(zhí)行的意思,每點這個按鈕一次驰贷,程序就會從我們斷點開始的地方盛嘿,向下執(zhí)行一步。
- 5 第五個按鈕是:進入執(zhí)行的意思括袒,簡單來說就是如果我們當前的斷點在一個函數(shù)調(diào)用上次兆,把么斷點會繼續(xù)進入這個函數(shù)的內(nèi)部進行調(diào)試。
-
6 第六個按鈕是:跳出的意思, 就是如果我們當前在一個函數(shù)中锹锰,它會跳出當前的函數(shù)芥炭,回到函數(shù)的調(diào)用處漓库。
常用p、po园蝠、call命令
從官方的描述來看渺蒿,p、print彪薛、call是一樣的茂装,但是po就不太一樣了,輸入一樣但是輸出不一樣善延。po的輸出的是具體對象的內(nèi)容少态。
lldb聲明變量
Paste_Image.png
我們使用e聲明了$str變量,然后下面就可以使用了易遣。我們看到通過p命令打印出來的都是$開頭的變量了嗎彼妻?我們在聲明和使用時也需要加上$符號,與PHP一樣豆茫!
在調(diào)試時澳骤,有時候想臨時計算一下某個值來比較時,就可以通過這種方式來實現(xiàn)了澜薄,再也不用到源代碼處添加上聲明實現(xiàn)然后添加一句打印了,是否便利了很多摊册?
常用打印視圖層次結(jié)構(gòu)
當我們想要知道某個視圖的結(jié)構(gòu)時肤京,可以通過調(diào)用recursiveDescription方法來打印出來,那么其結(jié)構(gòu)就一目了然了:
Paste_Image.png