IDEA的Debug技巧
點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”
優(yōu)質(zhì)文章,第一時(shí)間送達(dá)
作者 | aduner
來(lái)源 | urlify.cn/eAv2Qj
01_Debug簡(jiǎn)介和意義
什么是程序DeBug?
Debug,是程序開(kāi)發(fā)人員必會(huì)的一項(xiàng)調(diào)試程序的技能。
企業(yè)中程序開(kāi)發(fā)和程序調(diào)試的比例為1:1.5,可以說(shuō)如果你不會(huì)調(diào)試程序,你就沒(méi)有辦法從事編程工作。
Debug能幫助我們做什么?
追蹤代碼的運(yùn)行流程。
程序運(yùn)行異常定位。
線上問(wèn)題追蹤。
Debug對(duì)于程序?qū)W習(xí)者的意義
通過(guò)調(diào)試能夠更好的查看程序的執(zhí)行流程。
復(fù)雜的程序邏輯,通過(guò)老師的口述講解,很難理解清楚,這個(gè)時(shí)候借助調(diào)試能夠很好的幫助同學(xué)們理解程序。
定位問(wèn)題,提高自我解決問(wèn)題的能力。
02_IDEA中的Debug步驟
設(shè)置斷點(diǎn)(F9)
調(diào)試程序(8個(gè)按鈕)

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

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

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

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

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

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

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

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

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


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

作用
通過(guò)設(shè)置斷點(diǎn)條件,在滿足條件時(shí),才停在斷點(diǎn)處,否則直接運(yùn)行。
12_多線程調(diào)試
步驟
多線程調(diào)試,需要調(diào)整斷點(diǎn)掛起級(jí)別為T(mén)hread

Frame中選擇線程進(jìn)行調(diào)試
鋒哥最新SpringCloud分布式電商秒殺課程發(fā)布
??????
??長(zhǎng)按上方微信二維碼 2 秒
感謝點(diǎn)贊支持下哈 
