【IDEA】(4)---很好用的DEBUG功能

IDEA—DEBUG功能

1、經常使用快捷鍵

快捷鍵並非徹底同樣的,我這邊是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的功能鍵實效

若是你是mac系統你的功能鍵F1~F12,對於IDEA多是實效的,這裏須要相關設置。


2、計算表達式

可使用這個操做在調試過程當中計算某個表達式的值,好比是否爲空,獲取其它值的計算,同時它還能夠修改屬性值。

一、計算表達式

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。


3、斷點條件設置

這個通常循環內比較實用,由於咱們在循環體內設置斷點,若是沒有條件判斷那麼咱們須要一個一個執行。條件判斷就帶來很大便利。

在該斷點設置條件判斷,設置好後該斷點上會有個❓


4、異常斷點

好多時候debug的時候報異常了,若是異常剛好在for裏,這個時候你也不能用條件判斷打斷點,由於不知道用什麼條件的打這個斷點,這個時候異常斷點就頗有用了。

好比下面,並無打上任何斷點

設置異常斷點 快捷鍵Shift+Command+F8 點擊+號,設置相關異常

運行結果




只要本身變優秀了,其餘的事情纔會跟着好起來(少將19)
相關文章
相關標籤/搜索