01_Debug簡介和意義
-
什么是程序DeBug?
-
Debug,是程序開發人員必會的一項調試程序的技能。
-
企業中程序開發和程序調試的比例為1:1.5,可以說如果你不會調試程序,你就沒有辦法從事編程工作。
-
-
Debug能幫助我們做什么?
- 追蹤代碼的運行流程。
- 程序運行異常定位。
- 線上問題追蹤。
-
Debug對於程序學習者的意義
- 通過調試能夠更好的查看程序的執行流程。
- 復雜的程序邏輯,通過老師的口述講解,很難理解清楚,這個時候借助調試能夠很好的幫助同學們理解程序。
- 定位問題,提高自我解決問題的能力。
02_IDEA中的Debug步驟
-
設置斷點(F9)
-
調試程序(8個按鈕)
按鈕 說明 (Alt + F10):如果你的光標在其它行或其它頁面,點擊這個按鈕可跳轉到當前代碼執行的行 (F8):步過,一行一行地往下走,如果這一行上有方法不會進入方法。 (F7):步入。如果當前行有方法,可以進入方法內部,一般用於進入自定義方法內,不會進入官方類庫的方法。 (Alt + Shift + F7):強制步入,能進入任何方法,查看底層源碼的時候可以用這個進入官方類庫的方法。 (Shift + F8):步出,從步入的方法內退出到方法調用處,此時方法已執行完畢,只是還沒有完成賦值。 回退斷點。回退到當前方法的調用處。 (Alt + F9):運行到光標處,你可以將光標定位到你需要查看的那一行,然后使用這個功能,代碼會運行至光標行,而不需要打斷點。 (Alt + F8):計算表達式。 -
觀察變量
- 查看變量有三種方式:
- 程序區查看變量
- Debugger的Variables中查看變量
- 鼠標懸停到變量名上會彈出當前變量的值
- 查看變量有三種方式:
-
查看輸出
03_跳轉到當前代碼執行的行
-
跳轉到當前代碼執行的行(Alt + F10)
-
作用
- 使程序窗口切換到當前正在運行的程序處。
04_步過調試的使用
- 步過調試
- 步過調試按鈕(F8)
- 步過調試按鈕(F8)
- 作用
- 步過,一行一行地往下走,如果這一行上有方法不會進入方法。
- 常用於調試過程中不想進入調用的方法體的情況。
05_步入調試的使用
-
步入調試
- 步過調試按鈕(F7)
- 步過調試按鈕(F7)
-
作用
-
步入,一行一行地往下走,如果這一行上有方法,則進入方法內部。
-
一般用於進入自定義方法內,不會進入官方類庫的方法。
-
06_強制步入調試的使用
-
強制步入調試
- 強制步入調試按鈕(Alt + Shift + F7)
- 強制步入調試按鈕(Alt + Shift + F7)
-
作用
-
進入官方類庫方法
-
幫助我們學習和查看JDK源碼
-
07_步出調試的使用
-
步出調試
- 步出調試按鈕(Shift + F8)
- 步出調試按鈕(Shift + F8)
-
作用
- 從方法內退出到方法調用處。
- 調試的時候,有時候會跳入到自己不想查看的方法體,這個時候使用步出。
08_回退斷點調試的使用
-
回退斷點
- 回退斷點按鈕
- 回退斷點按鈕
-
作用
-
回退到當前方法的調用處。
-
當想重新查看該方法體的執行過程時,不用重新啟動Debug,可以使用回退斷點方式。
-
09_運行到光標處
- 運行到光標處
- 運行光標處按鈕 (F9)
- 作用
- 使程序運行到光標處,而無需設置斷點。
- 運行光標處按鈕 (F9)
10_計算表達式
-
計算表達式
-
計算表達式按鈕(Alt + F8)
-
-
作用
- 設置變量,在計算表達式的框里,可以改變變量的值,這樣有時候就能很方便我們去調試各種值的情況了。
11_條件斷點
-
條件斷點
-
右鍵單擊斷點處,可以設置進入斷點的條件
-
-
作用
- 通過設置斷點條件,在滿足條件時,才停在斷點處,否則直接運行。
12_多線程調試
- 步驟
-
多線程調試,需要調整斷點掛起級別為Thread
-
Frame中選擇線程進行調試
-