IDEA的Debug技巧,通俗易懂
作者 | aduner
來源 | urlify.cn/eAv2Qj
01_Debug簡介和意義
什么是程序DeBug?
Debug,是程序開發(fā)人員必會的一項調(diào)試程序的技能。
企業(yè)中程序開發(fā)和程序調(diào)試的比例為1:1.5,可以說如果你不會調(diào)試程序,你就沒有辦法從事編程工作。
Debug能幫助我們做什么?
追蹤代碼的運行流程。
程序運行異常定位。
線上問題追蹤。
Debug對于程序?qū)W習(xí)者的意義
通過調(diào)試能夠更好的查看程序的執(zhí)行流程。
復(fù)雜的程序邏輯,通過老師的口述講解,很難理解清楚,這個時候借助調(diào)試能夠很好的幫助同學(xué)們理解程序。
定位問題,提高自我解決問題的能力。
02_IDEA中的Debug步驟
設(shè)置斷點(F9)
調(diào)試程序(8個按鈕)

按鈕 說明 
(Alt + F10):如果你的光標在其它行或其它頁面,點擊這個按鈕可跳轉(zhuǎn)到當前代碼執(zhí)行的行 
(F8):步過,一行一行地往下走,如果這一行上有方法不會進入方法。 
(F7):步入。如果當前行有方法,可以進入方法內(nèi)部,一般用于進入自定義方法內(nèi),不會進入官方類庫的方法。 
(Alt + Shift + F7):強制步入,能進入任何方法,查看底層源碼的時候可以用這個進入官方類庫的方法。 
(Shift + F8):步出,從步入的方法內(nèi)退出到方法調(diào)用處,此時方法已執(zhí)行完畢,只是還沒有完成賦值。 
回退斷點。回退到當前方法的調(diào)用處。 
(Alt + F9):運行到光標處,你可以將光標定位到你需要查看的那一行,然后使用這個功能,代碼會運行至光標行,而不需要打斷點。 
(Alt + F8):計算表達式。 觀察變量

程序區(qū)查看變量
Debugger的Variables中查看變量
鼠標懸停到變量名上會彈出當前變量的值
查看變量有三種方式:
查看輸出
03_跳轉(zhuǎn)到當前代碼執(zhí)行的行
跳轉(zhuǎn)到當前代碼執(zhí)行的行(Alt + F10)

作用
使程序窗口切換到當前正在運行的程序處。
04_步過調(diào)試的使用
步過調(diào)試
步過調(diào)試按鈕(F8)

作用
步過,一行一行地往下走,如果這一行上有方法不會進入方法。
常用于調(diào)試過程中不想進入調(diào)用的方法體的情況。
05_步入調(diào)試的使用
步入調(diào)試
步過調(diào)試按鈕(F7)

作用
步入,一行一行地往下走,如果這一行上有方法,則進入方法內(nèi)部。
一般用于進入自定義方法內(nèi),不會進入官方類庫的方法。
06_強制步入調(diào)試的使用
強制步入調(diào)試
強制步入調(diào)試按鈕(Alt + Shift + F7)

作用
進入官方類庫方法
幫助我們學(xué)習(xí)和查看JDK源碼
07_步出調(diào)試的使用
步出調(diào)試
步出調(diào)試按鈕(Shift + F8)

作用
從方法內(nèi)退出到方法調(diào)用處。
調(diào)試的時候,有時候會跳入到自己不想查看的方法體,這個時候使用步出。
08_回退斷點調(diào)試的使用
回退斷點
回退斷點按鈕

作用
回退到當前方法的調(diào)用處。
當想重新查看該方法體的執(zhí)行過程時,不用重新啟動Debug,可以使用回退斷點方式。
09_運行到光標處
運行到光標處
使程序運行到光標處,而無需設(shè)置斷點。
運行光標處按鈕 (F9)

作用
10_計算表達式
計算表達式
計算表達式按鈕(Alt + F8)


作用
設(shè)置變量,在計算表達式的框里,可以改變變量的值,這樣有時候就能很方便我們?nèi)フ{(diào)試各種值的情況了。
11_條件斷點
條件斷點
右鍵單擊斷點處,可以設(shè)置進入斷點的條件

作用
通過設(shè)置斷點條件,在滿足條件時,才停在斷點處,否則直接運行。
12_多線程調(diào)試
步驟
多線程調(diào)試,需要調(diào)整斷點掛起級別為Thread

Frame中選擇線程進行調(diào)試
END
順便給大家推薦一個GitHub項目,這個 GitHub 整理了上千本常用技術(shù)PDF,絕大部分核心的技術(shù)書籍都可以在這里找到,
GitHub地址:https://github.com/javadevbooks/books
Gitee地址:https://gitee.com/javadevbooks/books
電子書已經(jīng)更新好了,你們需要的可以自行下載了,記得點一個star,持續(xù)更新中..

