設(shè)置斷點(點擊紅點位置添加或取消斷點)
點擊debug模式運行
查看調(diào)試面板
一矾克、簡單調(diào)試
-
step over:一步步往下走
這里寫圖片描述
當(dāng)前程序運行的位置躁锡,我們看到i的值已經(jīng)在程序代碼中展示出來了桨醋,黃色的代碼處袜硫,這個是AS的功能箭阶,對于我們調(diào)試來講挤安,這簡直是非常大的福利了谚殊。
點擊單步調(diào)試按鈕或按快捷鍵F8,看看效果蛤铜。這里我們看到selector變量的值已經(jīng)出來了selector:0
,我們在看看黃色位置i的當(dāng)前值是0嫩絮。
這時我們繼續(xù)F8,我們切換到logcat查看日志昂羡,我打印出的i的值是0絮记,我們在切回道Debugger面板,可以看到Variables顯示面板中虐先,有i的值是0怨愤,selector的值是0。以及我們可以看到Frames控制面板中可以顯示出當(dāng)前程序的位置在:onCreate():28,第28行蛹批。
- step into:看到方法往里走
比如我們的for循環(huán)當(dāng)中調(diào)用了一個stepNext(int i)
方法撰洗,當(dāng)我們走到這里想看看這個方法里面的運行過程的時候我們可以這樣,當(dāng)走到這個方法的時候我們可以按下F7,或者如下圖的圖標(biāo)腐芍。
這時就走到了stepNext方法當(dāng)中差导。
在這里打印了一個log,我們再按一下F8我們來看看Logcat, 這里我打印的log都是為了做教程用猪勇,調(diào)試我們就不用打log了直接看顯示面板就OK了
- force step into :所有方法看完整
這個是可以看到你所調(diào)用的所有方法的實現(xiàn)會讓你跟著它走一遍设褐,研究源碼使用非常方便
- step out :有斷點下一個,走完斷點繼續(xù)走
這里如果我們的一個流程當(dāng)中泣刹,包括調(diào)用的方法助析,如果有斷點走到下一個斷點,如果沒有斷點椅您,而是在一個調(diào)用的方法當(dāng)中外冀,會跳出這個方法,繼續(xù)走掀泳。
這里理解比較難雪隧,舉個例子:
(上圖)我現(xiàn)在程序位置在第一個斷點位置(24行),我調(diào)用的stepNext方法中也有一個斷點员舵,此時我按下step out按鈕會走到stepNext中的斷點處(39行)我此時如果再按一下step out 會走到stepNext方法的調(diào)用出的下一個可執(zhí)行代碼(30行)
(上圖)如果我現(xiàn)在程序位置在stepNext的方法中脑沿,如果我此時按下step out,會走到stepNext方法的調(diào)用出的下一個可執(zhí)行代碼(30行)
- run to Cursor :下個斷點我們見
這里的意思就是說马僻,會很快執(zhí)行到下一個斷點的位置捅伤,而且可以靜如任何調(diào)用的方法
二、高級調(diào)試
- 跨斷點調(diào)試
如果我們設(shè)置了多個斷點巫玻,現(xiàn)在我們需要直接跳轉(zhuǎn)到下一個斷點丛忆,那么直接點擊下圖就可以了
2.觀察變量
如果我們想觀察1個或者幾個變量的值的變化,如果我們在Variables顯示面版中觀察如果我這里有太多太多的自定義變量和系統(tǒng)變量了仍秤,那么就難觀察了熄诡,我們可以做如下操作:點擊Watches,點擊+號,然后輸入變量的名稱回車就OK了诗力,而且會有歷史記錄哦
如果變量名比較長我們可以這樣:選擇[Variables]中的變量名然后點擊[右鍵]凰浮,選擇[Add to Watches],然后Watches面板中就有了
3.設(shè)置變量的值
在程序中有很多的條件語句和循環(huán)語句,調(diào)試也是比較耗時的苇本,我們可以通過快速設(shè)置變量的值來加快調(diào)試速度袜茧,我們可以做如下操作:選擇[Variables]中的變量名然后點擊[右鍵],選擇[Set Value..]或者選擇之后直接F2(如上圖)(下圖為Variables面板)
4.查看斷點
點擊之后我們可以看到所有的斷點瓣窄,以及位置代碼,也可以設(shè)置一些屬性
5.停止調(diào)試
到這里我們的Android Studio的斷點調(diào)試和高級調(diào)試就完畢了。