Debug調(diào)試的功能主要對應(yīng)著圖一中4和5兩組按鈕:
1、首先說第一組按鈕,共8個按鈕,從左到右依次如下:
[圖2.1]
Show Execution Point (Alt + F10):如果你的光標(biāo)在其它行或其它頁面,點(diǎn)擊這個按鈕可跳轉(zhuǎn)到當(dāng)前代碼執(zhí)行的行。
Step Over (F8):步過,一行一行地往下走,如果這一行上有方法不會進(jìn)入方法。
Step Into (F7):步入,如果當(dāng)前行有方法,可以進(jìn)入方法內(nèi)部,一般用于進(jìn)入自定義方法內(nèi),不會進(jìn)入官方類庫的方法,如第25行的put方法。
Force Step Into (Alt + Shift + F7):強(qiáng)制步入,能進(jìn)入任何方法,查看底層源碼的時候可以用這個進(jìn)入官方類庫的方法。
Step Out (Shift + F8):步出,從步入的方法內(nèi)退出到方法調(diào)用處,此時方法已執(zhí)行完畢,只是還沒有完成賦值。
Drop Frame (默認(rèn)無):回退斷點(diǎn),后面章節(jié)詳細(xì)說明。
Run to Cursor (Alt + F9):運(yùn)行到光標(biāo)處,你可以將光標(biāo)定位到你需要查看的那一行,然后使用這個功能,代碼會運(yùn)行至光標(biāo)行,而不需要打斷點(diǎn)。
Evaluate Expression (Alt + F8):計(jì)算表達(dá)式,后面章節(jié)詳細(xì)說明。
2、第二組按鈕,共7個按鈕,從上到下依次如下:
[圖2.2]
Rerun 'xxxx':重新運(yùn)行程序,會關(guān)閉服務(wù)后重新啟動程序。
Update 'tech' application (Ctrl + F5):更新程序,一般在你的代碼有改動后可執(zhí)行這個功能。而這個功能對應(yīng)的操作則是在服務(wù)配置里,如圖2.3。
Resume Program (F9):恢復(fù)程序,比如,你在第20行和25行有兩個斷點(diǎn),當(dāng)前運(yùn)行至第20行,按F9,則運(yùn)行到下一個斷點(diǎn)(即第25行),再按F9,則運(yùn)行完整個流程,因?yàn)楹竺嬉呀?jīng)沒有斷點(diǎn)了。
Pause Program:暫停程序,啟用Debug。目前沒發(fā)現(xiàn)具體用法。
Stop 'xxx' (Ctrl + F2):連續(xù)按兩下,關(guān)閉程序。有時候你會發(fā)現(xiàn)關(guān)閉服務(wù)再啟動時,報(bào)端口被占用,這是因?yàn)闆]完全關(guān)閉服務(wù)的原因,你就需要查殺所有JVM進(jìn)程了。
View Breakpoints (Ctrl + Shift + F8):查看所有斷點(diǎn),后面章節(jié)會涉及到。
Mute Breakpoints:啞的斷點(diǎn),選擇這個后,所有斷點(diǎn)變?yōu)榛疑瑪帱c(diǎn)失效,按F9則可以直接運(yùn)行完程序。再次點(diǎn)擊,斷點(diǎn)變?yōu)榧t色,有效。如果只想使某一個斷點(diǎn)失效,可以在斷點(diǎn)上右鍵取消Enabled,如圖2.4,則該行斷點(diǎn)失效。
更新程序,On 'Update' actions,執(zhí)行更新操作時所做的事情,一般選擇'Update classes and resources',即更新類和資源文件。
一般配合熱部署插件會更好用,如JRebel,這樣就不用每次更改代碼后還要去重新啟動服務(wù)。如何激活JRebel,在最后章節(jié)附上。
下面的On frame deactivation,在IDEA窗口失去焦點(diǎn)時觸發(fā),即一般你從idea切換到瀏覽器的時候,idea會自動幫你做的事情,一般可以設(shè)置Do nothing,頻繁切換會比較消耗資源的。
[圖2.3]
[圖2.4]