1. 程式人生 > 其它 >IDEA如何打斷點除錯

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的時候停止呢?

我們可以這樣子,設定條件斷點:

設定之後,斷點處會加上“?”

進行除錯時,停下的時候:

版權宣告:本文為博主原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結和本宣告。 本文連結:https://blog.csdn.net/Applying/article/details/82925061