IDEA如何打斷點除錯
編寫程式碼的時候,有時候我們需要跟蹤程式碼的執行情況,使用斷點除錯就是一個不錯的方法,接下來介紹一下如何在IDEA中使用斷點進行除錯
文章目錄
1. 設定斷點
直接在你需要打斷點的程式碼的行號區域,點選,即可設定斷點,如圖所示
這裡補充一下對斷點的理解:斷點打在程式碼的前面,例如11行的斷點打在第11行程式碼的前面,意味著,當程式執行到11行程式碼的斷點時,第11行程式碼其實並未執行
2. 除錯
點選綠色的三角形進行執行程式,點選綠色的小瓢蟲就是執行除錯程式
程式就會進入除錯介面,程式碼行處的斷點標記,都變成了紅色的箭頭,藍色的部分表示現在程式所停的行數
最下面的就是除錯視窗,除錯視窗的左邊部分是方法棧,即越下面的方法是越早被呼叫的,除錯視窗的右邊部分是變數的值
3. 除錯的基本操作
3.1 step over
在除錯視窗的上方,含義為:進入下一步,如果當前行斷點是一個方法,則不進入當前方法體內。即從程式碼行A,跳到下一行程式碼A + 1,並執行原來A行程式碼
例如:
現在執行到第12行程式碼(12行未執行),當前的map裡只有一個元素,我們可以在下面的Variables中確認只有一個元素
當我們點選step over時:第12行內容被執行,map的size變為2,程式來到第13行
3.2 step into 跟 Force step into
這兩個都是表示:進入下一步,如果當前行斷點是一個方法,則進入當前方法體內。但有一點區別,step into 只針對自定義的方法,如果對應的方法是官方庫的方法,並不會進入方法體內。但Force step into,無論方法是什麼方法,都會進入到方法體中
舉例:
當執行到第15行,一個自定義的函式時:
使用 step into
則進入了該方法體內
但如果是這種官方庫的方法,則無法進入:
此時,如果需要進入到方法體中,則需要使用Force step into:
這裡進入到hashmap中
3.3 step out
跳出,即我們在方法體中執行時,不想繼續一行一行的執行,想直接回到上一層的方法中,則使用step out跳出
如剛才上面的除錯,我們進入到hashmap中:
使用:step out 跳出
3.4 resume program
恢復程式執行,如果該斷點下面程式碼還有斷點則停在下一個斷點上,即從一個斷點跳到另一個斷點
例如:程式除錯到13行,點選Resume Program,直接執行到下一個斷點15行處才停止
執行後:
3.5 mute breakpoints
使得所有的斷點失效 ,讓所有斷點失效,可以直接執行完剩餘的程式
3.6 view breakpoints
檢視所有斷點的資訊
查詢結果:你可以看到自己設定的所有斷點的資訊:
3.6 條件斷點
對斷點是否停止進行條件判斷,在斷點處右鍵即可設定:
例如,如果我們這樣子設定斷點的話,我們除錯的過程中,這段程式碼會停下來100次,如果我只想它在大於90的時候停止呢?
我們可以這樣子,設定條件斷點:
設定之後,斷點處會加上“?”
進行除錯時,停下的時候: