一、斷點(diǎn)命令
1嘹吨、設(shè)置斷點(diǎn),現(xiàn)用斷點(diǎn)卡住程序厅须,然后在輸入
breakpoint set --file 文件名 --line 行數(shù)
br s -f 文件名 -l 行數(shù)
b 文件名:行數(shù)
上面三種方式均可設(shè)置文件行斷點(diǎn)
設(shè)置所以方法斷點(diǎn):
breakpoint set --selector 方法名
br s -S 方法名
以上兩種方式均可
2、查看斷點(diǎn):
breakpoint list
br l
會(huì)出來(lái)一個(gè)斷點(diǎn)詳細(xì)信息危尿,每個(gè)斷點(diǎn)后面都有關(guān)于斷點(diǎn)的描述呐萌,
使用breakpoint set設(shè)置的斷點(diǎn)是不顯示在導(dǎo)航面板中的
3、刪除斷點(diǎn)
breakpoint delete 斷點(diǎn)編號(hào)
br del 斷點(diǎn)編號(hào)
4谊娇、單步進(jìn)入
thread step-in
step
s
5肺孤、單步跳過(guò)
thread step-over
next
n
6、繼續(xù)運(yùn)行
thread continue
continue
c
每個(gè)功能均有多個(gè)命令可以實(shí)現(xiàn)济欢,依次為簡(jiǎn)寫(xiě)赠堵,同時(shí)這些命令也均可以通過(guò)工具欄實(shí)現(xiàn)
二、觀察點(diǎn)命令
觀察點(diǎn)命令是在程序中對(duì)于某個(gè)要觀察的變量設(shè)置一個(gè)觀察點(diǎn)法褥,當(dāng)這個(gè)變量變化的時(shí)候程序就會(huì)掛起茫叭,與斷點(diǎn)很相似,觸發(fā)條件不同而已
1挖胃、設(shè)置觀察點(diǎn)
watchpoint set variable 變量名
wa s v b
2杂靶、查看觀察點(diǎn)
watchpoint list
watch l
3、刪除觀察點(diǎn)
watchpoint delete 觀察點(diǎn)編號(hào)(list里面的編號(hào))
三酱鸭、查看變量和計(jì)算表達(dá)式命令
1吗垮、查看當(dāng)前棧幀的所有本地變量
frame variable
fr v
查看某個(gè)具體變量
frame variable 變量名
fr v 變量名
p 變量名
2、查看全局變量,只能查到在當(dāng)前棧中使用到全局變量
target variable
ta v
查看某個(gè)具體變量
target variable 變量名
ta v 變量名
3凹髓、計(jì)算基本數(shù)據(jù)類型表達(dá)式
expr (int)i*i
expr i*i
print i*i
p i*i
4烁登、計(jì)算對(duì)象數(shù)據(jù)類型表達(dá)式
expr -o --((Note *)self.listData[0]).date
po ((Note *)self.listData[0])date
從數(shù)組self.listData中取得第一個(gè)元素,做一下強(qiáng)制類型轉(zhuǎn)換蔚舀,然后調(diào)用date屬性,然后會(huì)輸出該屬性的值
三饵沧、斷言
NSAssert(NO,@"duan'yan");第一個(gè)參數(shù)數(shù)布爾表達(dá)式,第二個(gè)是描述信息赌躺,參數(shù)后面的是格式化desc描述信息的狼牺,當(dāng)布爾表達(dá)式為NO時(shí)會(huì)拋出異常,并且輸出拋出異常的位置礼患,例如:*** Assertion failure in -[ViewController clickBtn], /Users/zhaojing/Desktop/測(cè)試項(xiàng)目集合/BYTestSDWebImage/BYTestSDWebImage/ViewController.m:43
四是钥、異常棧報(bào)告分析
1、當(dāng)異常發(fā)生時(shí)缅叠,程序會(huì)拋出異常悄泥,會(huì)輸出到異常窗口,窗口中的****First throw call stack:后面的內(nèi)容就是異常棧信息肤粱。
2弹囚、每條棧信息構(gòu)成:序列號(hào) ? + ?框架 ?+ 方法所屬類名 ?+ ?方法名 ?+ 調(diào)用方法編譯之后的代碼偏移量
前面序列號(hào) :是棧輸出序列號(hào),序列號(hào)越大代表越早被調(diào)用
序列號(hào)后面是調(diào)用方法所屬框架
在后面就是調(diào)用方法所屬的類名
調(diào)用的方法名
調(diào)用方法編譯后的代碼偏移量领曼,很多人以為是行號(hào)鸥鹉,其實(shí)不是蛮穿,對(duì)我們基本沒(méi)用
棧信息是要從下往上看,程序運(yùn)行的過(guò)程是從下面的方法調(diào)用項(xiàng)目的方法
在程序運(yùn)行過(guò)程中宋舷,棧信息可能很長(zhǎng)绪撵,我們不需要每一行都去看,只需關(guān)注自己的工程代碼祝蝠,先找到自己工程中的方法音诈,找到那條語(yǔ)句看看是不是有問(wèn)題,前提是別人提供給我們的框架是正確的绎狭。
五细溅、查看設(shè)備上的應(yīng)用程序
選擇window----->Devices進(jìn)入到設(shè)備頁(yè)面,左邊面板中選擇設(shè)備儡嘶,右邊會(huì)顯示設(shè)備的相關(guān)信息喇聊,
在Installed Apps中顯示的是已經(jīng)安裝到設(shè)備上的應(yīng)用,在這可以通過(guò)+和-安裝和刪除設(shè)備蹦狂,在旁邊設(shè)置按鈕Show Container菜單是用于查看應(yīng)用的沙箱目錄(但是我測(cè)試沒(méi)看到誓篱,只能下載來(lái)看)
Download Container 可以講設(shè)備中的沙箱目錄復(fù)制到當(dāng)前的開(kāi)發(fā)電腦上來(lái),右擊該文件凯楔,選擇顯示包內(nèi)容窜骄,可以看到沙箱里面的內(nèi)容
點(diǎn)擊View Device Logs按鈕,可以貸款設(shè)備日志界面摆屯,可以查看設(shè)備的信息邻遏,右欄會(huì)出現(xiàn)設(shè)備日志信息,左欄包括進(jìn)程虐骑、類型和日志時(shí)間准验,如果是crash,代表應(yīng)用崩潰廷没,點(diǎn)擊某個(gè)日志信息糊饱,右欄會(huì)顯示詳細(xì)的日志描述信息,其中包括跟蹤異常棧的信息輸出颠黎。