小編給大家分享一下Intellij IDEA調試技巧的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
前言
程序員的日常工作除了寫代碼之外,很大一部分時間將會在查找 BUG,解決問題。查找 BUG,離不開在 IDE 中調試代碼。熟練的掌握調試技巧,可以幫助我們減少查找時間,快速定位問題。
在 IDEA 中調試代碼很方便,只要開啟調試,在相應代碼處使用斷點,然后進行相應調試即可。正是因為只要掌握這幾個功能,就可以調試代碼,所以在很長一段時間內,不了解其他調試技巧。后續深入使用 IDEA 過程中,不斷學會 IDEA 其他調試技巧,很大程度上加快調試速度。
Step 系列按鈕
日常調試的過程中為了為了找到程序的bug,通常需要單步調試,一步一步跟蹤程序執行的流程,根據變量的值,找到最終原因。
IDEA 中提供一系列 Step 功能按鈕用于單步調試,可以在 Run 菜單欄找到全部 Step 功能。

另外在調試窗口也可以找到,不過這里只會顯示一部分常用按鈕。

調試過程中,使用頻率最高的可能就是 Setp Over。Setp Over 可以單步調試代碼,但是當碰到方法執行時,不會進入方法內,直接調用了方法,然后到下一行。
如果需要進入方法內,需要使用 Step Into 。Step Into 可以進入調用的方法內,不過默認情情況下并不會進入 java.* 等類的方法中。如果需要進入,可以在 Setting-Stepping 中設置,排除即可。。

另外還可以使用 Force Step Into,強制進入。
當碰到一行代碼調用多個方法時,使用 Step Into 就比較蛋疼了。Step Into 會按照調用順序進入調用的方法,但是往往我們只想進入其中一個方法而已。
這種場景下我們可以使用 Smart Step Into ,選擇指定方法進入。

有些情況下,在進入一個方法后,可以使用 Setp Out,快速執行方法,然后跳回到調用處。
另外在進入 for/while 循環里面的后,如果不在循環代碼外面打斷點出來,就需一步步隨著循壞代碼執行結束,特別麻煩。在這里就可以使用 Setp Out Of Code Block,快速跳出循環代碼塊。
斷點使用技巧
臨時斷點
一般調試的時候,我們會在代碼行使用斷點,然后運行測試,等到程序遇到斷點暫停時,查看相關變量內容。
在 IDEA 中,默認斷點將會一直存在。有時候僅僅想需要暫停第一次,臨時查看,這個時候我們可以使用臨時斷點。使用快捷鍵 Ctel + Alt + Shift +F8 可以快速創建臨時斷點或者按住 ALt,然后再創建斷點。。
條件斷點
有時候我們在循環處理數據的過程中,可能只關心某個條件的數據,這種情況下我們使用條件斷點。
右擊斷點,彈出設置斷點屬性的窗口,我們就可以在 condition 處設置條件。IDEA 會在滿足這個條件時候,才會暫停程序。

另外設置的條件斷點樣式也會比較特殊,
。
多線程斷點
在調試多線程的項目時候,如果在多個線程代碼處打上了斷點,調試的時候你會發現,只能串行的調試。

上面多線程程序,兩個線程啟動之后,程序也許會在 thread1暫停,也許會在 thread2處暫停。只要任一個斷線暫停之后,另一處斷點線程就會被阻塞。這時只能調試完暫停處線程的斷點,才能跳到第二處斷點,調試起來非常不方便。
我們可以設置斷點線程屬性,改變這個特性。

我們可以在斷點上使用鼠標右鍵彈出斷點設置框,在 Suspend 選擇 Thread 選項。重新啟動上面的程序,然后在調試窗口 Frames 可以看到 thread1,thread2兩個線程。其中兩個線程均可進入調試,此時程序調試位于 thread1 處。這時選擇框選擇thread2,就可以調試 thread2.

另外,斷點的多線程屬性可以設置默認屬性,點擊 Make Default 按鈕,設置默認 Suspend屬性。

回退調試程序
調試的時候,有時候會進錯方法或者錯過一個方法調用過程,這個時候往往只能重新開始從頭開始執行調試一遍。從新開始調試,可能還需要設置相關參數,修改數據庫狀態等,非常麻煩。所以如果在調試過程中可以回退就可以不用重新開始。
IDEA 中可以使用 Drop Frame 與 Force Return 回退調試程序。
Drop Frame
Drop Frame 字面意思為丟棧。JVM 中使用棧幀用于進行方法調用數據結構,每次方法調用,對應著一個棧幀在虛擬機中從入棧到出棧的過程。調用方法之后,該方法棧幀將會位于棧頂。
執行 Drop Frame,丟棄棧頂棧幀,于是程序將會回到調用方法處。

調試上面的程序,在上面斷點處,使用 Drop Frame,就可以跳回方法調用處,即第三行。查看輸出窗口,發現并沒有任何輸出。
Drop Frame 可以在調試窗口欄找到。

注意與 Step Out 區別,執行 Step Out,方法將會執行結束之后再返回到調用處。
Force Return
Force Return 強制返回,可以在程序執行到一半時強制返回結束程序??梢栽?Frames 找到。


點擊 Force Return,可以設置返回值。
以上是“Intellij IDEA調試技巧的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。