快捷鍵並非徹底同樣的,我這邊是MAC安裝的IDEA, 這邊最主要仍是知道DEBUG時經常使用的功能。java
F7 #進入下一步,若是當前行是一個方法,則進入當前方法體內 F8 #進入下一步,若是當前行是一個方法,則不進入當前方法體內 F9 #跳到下一個斷點,若是沒有則直接運行結束 Alt + F8 #表達式求值 Alt + F9 #代碼會運行至光標行,而不須要打斷點 Shift + F8 #跳出進入的方法體,回到上級代碼處 Ctrl+Shift+F9 #DEBUG模式運行 Ctrl+F5 #從新運行 Shift+Command+F8 #查看全部斷點,爲斷點添加條件等
第一組ide
(Alt + F10)
:若是你的光標在其它行或其它頁面,點擊這個按鈕可跳轉到當前執行的斷點。lua
(F8)
:步過,一行一行地往下走,若是這一行上有方法不會進入方法。idea
(F7)
:步入,若是當前行有方法,能夠進入方法內部,通常用於進入自定義方法內,不會進入官方類庫的方法。debug
(Alt + Shift + F7)
:強制步入,能進入任何方法,查看底層源碼的時候能夠用這個進入官方類庫的方法。3d
(Shift + F8)
:步出,從步入的方法內退出到方法調用處,此時方法已執行完畢,只是尚未完成賦值。調試
Drop Frame (默認無快捷鍵)
:回退斷點,後面章節詳細說明。code
(Alt + F9)
:運行到光標處,你能夠將光標定位到你須要查看的那一行,而後使用這個功能,代碼會運行至光標行,而不須要打斷點。blog
Evaluate Expression (Alt + F8)
:計算表達式,後面章節詳細說明。進程
第二組
Rerun 'xxxx'
:從新運行程序,會關閉服務後從新啓動程序。
(Ctrl + F5)
:更新程序,通常在你的代碼有改動後可執行這個功能。
(F9)
:跳到下一個斷點,若是沒有則直接運行結束。
Pause Program
:暫停程序,啓用Debug。目前沒發現具體用法。
(Ctrl + F2)
:連續按兩下,關閉程序。有時候你會發現關閉服務再啓動時,報端口被佔用,這是由於沒徹底關閉服務的緣由,你就須要查殺全部JVM進程了。
(Ctrl + Shift + F8)
:查看全部斷點。
Mute Breakpoints
:啞的斷點,選擇這個後,全部斷點變爲灰色,斷點失效,按F9則能夠直接運行完程序。
若是你是mac系統你的功能鍵F1~F12,對於IDEA多是實效的,這裏須要相關設置。
可使用這個操做在調試過程當中計算某個表達式的值,好比是否爲空,獲取其它值的計算,同時它還能夠修改屬性值。
int age = 10; String name = "小小"; //這裏有個判斷條件,我想知道age > 5 的計算結果 if (age > 5 && name == null) { System.out.println("age = " + age); }
第一種直接選中age>5
它會直接告訴你計算結果。
第二種經過Alt+F9
輸入計算表達式,也會計算結果。
下面age爲10,那麼age == 18 就爲false
這時我經過Alt+F9
修改屬性
發現這個屬性值已經修改爲咱們自定義的18了。
重要
順便說下若是咱們須要查看一些重要的屬性值的變化,那麼咱們能夠將variables
中的屬性添加到Watches
進行先後觀察,這樣更加直觀。好比下面age。
這個通常循環內比較實用,由於咱們在循環體內設置斷點,若是沒有條件判斷那麼咱們須要一個一個執行。條件判斷就帶來很大便利。
在該斷點設置條件判斷,設置好後該斷點上會有個❓
好多時候debug的時候報異常了,若是異常剛好在for裏,這個時候你也不能用條件判斷打斷點,由於不知道用什麼條件的打這個斷點,這個時候異常斷點就頗有用了。
好比下面,並無打上任何斷點
設置異常斷點
快捷鍵Shift+Command+F8
點擊+號,設置相關異常
運行結果
只要本身變優秀了,其餘的事情纔會跟着好起來(少將19)