溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Intellij IDEA調試技巧的示例分析

發布時間:2021-09-03 11:26:51 來源:億速云 閱讀:207 作者:小新 欄目:編程語言

小編給大家分享一下Intellij IDEA調試技巧的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

前言

程序員的日常工作除了寫代碼之外,很大一部分時間將會在查找 BUG,解決問題。查找 BUG,離不開在 IDE 中調試代碼。熟練的掌握調試技巧,可以幫助我們減少查找時間,快速定位問題。

在 IDEA 中調試代碼很方便,只要開啟調試,在相應代碼處使用斷點,然后進行相應調試即可。正是因為只要掌握這幾個功能,就可以調試代碼,所以在很長一段時間內,不了解其他調試技巧。后續深入使用 IDEA 過程中,不斷學會 IDEA 其他調試技巧,很大程度上加快調試速度。

Step 系列按鈕

日常調試的過程中為了為了找到程序的bug,通常需要單步調試,一步一步跟蹤程序執行的流程,根據變量的值,找到最終原因。

IDEA 中提供一系列 Step 功能按鈕用于單步調試,可以在 Run 菜單欄找到全部 Step 功能。

Intellij IDEA調試技巧的示例分析

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

Intellij IDEA調試技巧的示例分析

調試過程中,使用頻率最高的可能就是 Setp Over。Setp Over 可以單步調試代碼,但是當碰到方法執行時,不會進入方法內,直接調用了方法,然后到下一行。

如果需要進入方法內,需要使用 Step Into 。Step Into 可以進入調用的方法內,不過默認情情況下并不會進入 java.* 等類的方法中。如果需要進入,可以在 Setting-Stepping 中設置,排除即可。。

Intellij IDEA調試技巧的示例分析

另外還可以使用 Force Step Into,強制進入。

當碰到一行代碼調用多個方法時,使用 Step Into 就比較蛋疼了。Step Into 會按照調用順序進入調用的方法,但是往往我們只想進入其中一個方法而已。

這種場景下我們可以使用 Smart Step Into ,選擇指定方法進入。

Intellij IDEA調試技巧的示例分析

有些情況下,在進入一個方法后,可以使用 Setp Out,快速執行方法,然后跳回到調用處。

另外在進入 for/while 循環里面的后,如果不在循環代碼外面打斷點出來,就需一步步隨著循壞代碼執行結束,特別麻煩。在這里就可以使用 Setp Out Of Code Block,快速跳出循環代碼塊。

斷點使用技巧

臨時斷點

一般調試的時候,我們會在代碼行使用斷點,然后運行測試,等到程序遇到斷點暫停時,查看相關變量內容。

在 IDEA 中,默認斷點將會一直存在。有時候僅僅想需要暫停第一次,臨時查看,這個時候我們可以使用臨時斷點。使用快捷鍵 Ctel + Alt + Shift +F8 可以快速創建臨時斷點或者按住 ALt,然后再創建斷點。。

條件斷點

有時候我們在循環處理數據的過程中,可能只關心某個條件的數據,這種情況下我們使用條件斷點。

右擊斷點,彈出設置斷點屬性的窗口,我們就可以在 condition 處設置條件。IDEA 會在滿足這個條件時候,才會暫停程序。

Intellij IDEA調試技巧的示例分析

另外設置的條件斷點樣式也會比較特殊,Intellij IDEA調試技巧的示例分析。

多線程斷點

在調試多線程的項目時候,如果在多個線程代碼處打上了斷點,調試的時候你會發現,只能串行的調試。

Intellij IDEA調試技巧的示例分析

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

我們可以設置斷點線程屬性,改變這個特性。

Intellij IDEA調試技巧的示例分析

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

Intellij IDEA調試技巧的示例分析

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

Intellij IDEA調試技巧的示例分析

回退調試程序

調試的時候,有時候會進錯方法或者錯過一個方法調用過程,這個時候往往只能重新開始從頭開始執行調試一遍。從新開始調試,可能還需要設置相關參數,修改數據庫狀態等,非常麻煩。所以如果在調試過程中可以回退就可以不用重新開始。

IDEA 中可以使用 Drop Frame 與 Force Return 回退調試程序。

Drop Frame

Drop Frame 字面意思為丟棧。JVM 中使用棧幀用于進行方法調用數據結構,每次方法調用,對應著一個棧幀在虛擬機中從入棧到出棧的過程。調用方法之后,該方法棧幀將會位于棧頂。

執行 Drop Frame,丟棄棧頂棧幀,于是程序將會回到調用方法處。

Intellij IDEA調試技巧的示例分析

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

Drop Frame 可以在調試窗口欄找到。

Intellij IDEA調試技巧的示例分析

注意與 Step Out 區別,執行 Step Out,方法將會執行結束之后再返回到調用處。

Force Return

Force Return 強制返回,可以在程序執行到一半時強制返回結束程序??梢栽?Frames 找到。

Intellij IDEA調試技巧的示例分析

Intellij IDEA調試技巧的示例分析

點擊 Force Return,可以設置返回值。

以上是“Intellij IDEA調試技巧的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女