1. 程式人生 > >你不知道的 IDEA Debug除錯小技巧

你不知道的 IDEA Debug除錯小技巧

一、多執行緒除錯斷點

Intellij IDEAdebug斷點除錯是有一個模式的選擇的,就像下面這張圖,平時我們都使用的是預設的 ALL(在Eclipse中預設是執行緒模式) ,這種模式我們只能將一個執行緒斷下來,但其他執行緒卻已經執行過了;而將其改為 Thread 後,就可以多個執行緒都斷下來,並且可以很方便的切換執行緒的執行流程,這就是多執行緒除錯。

debug控制檯能夠很方便的檢視執行緒的執行狀態,也可以很方便的選擇某個執行緒去執行:

二、回退斷點

不知道大夥有沒有遇到這樣一個問題,當我們進行debug時,通常不會進入某個方法一步一步的執行,而是選擇性的跳過;當你想要回頭觀察某個變數的值得變化時,而你剛好沒有跟進去,跳過了這個方法,這個時候,變數就被賦值了,我們通常的做法是重來一次。

其實IDEA的除錯功能是非常強大的,我們來看看熟悉的除錯視窗:

使用紅色框框出來的部分,表示當前程式執行到哪一塊,哪一部分,你可以嘗試用滑鼠點點看,你會發現編輯器會跳轉到對應的程式碼中,當然當前斷點的位置通常會在列表的第一條。然後我們使用右鍵單擊,你就可以看到如下圖所示:

或者你也可以在下圖中找到 Drop Frame

在IDEA中,所謂的回退,叫 Drop Frame,選擇Drop Frame後,程式會跳轉回呼叫當前這個方法的地方,當然已經改變的值是不會恢復的。但是當該方法再次被呼叫時,你可以觀察到某個變數什麼時候被改變,至少我們不用再去重新執行一遍程式。

三、條件斷點

條件斷點就是當滿足某個條件(通常是表示式)時,debug

斷點才會生效;這在迴圈中debug是非常有用的;例如我們想要在迴圈體中除錯:當某個變數滿足某個條件時,需要斷點除錯,來檢視詳細的執行流程及變化情況。

我們說過,IDEA中的debug功能是非常強大的,要使用條件斷點也非常簡單,下面這張圖片中 Condition中的內容代表當nameeamon:23時,程式執行到斷點處停下來。

有了條件斷點,這樣一來,那些不相關和我們不關心的程式碼就可以直接跳過了。

四、臨時斷點

所謂臨時斷點就是隻斷一次,IDEA預設斷點會一致存在。如果你只需要暫停一次,那麼使用臨時斷點會比較方便,因為暫停一次之後斷點就自動消失了,不用手動取消。

臨時斷點可以通過在打斷點時按住 Alt

或者 option 鍵,然後建立斷點。也可以通過右鍵斷點處,選擇 more 然後在視窗中選中 Remove once hit

五、求值計算

求值計算功能在我們debug過程中,可以很方便的檢視程式中所有變數的值,也可以臨時修改程式中變數的值,這個功能能在一定程度上輔助我們進行程式碼除錯。

這個功能可以在debug時在debug視窗開啟:

開啟後是這樣的:

然後你就可以在表示式輸入框中,輸入你想要的操作,比如,檢視變數、修改變數(臨時的)、呼叫某個方法等;這些操作結果將會在下方的Result 視窗中輸出。

相關推薦

知道IDEA Debug除錯技巧

一、多執行緒除錯斷點 Intellij IDEA 的debug斷點除錯是有一個模式的選擇的,就像下面這張圖,平時我們都使用的是預設

【譯】知道的Chrome除錯工具技巧 第七天:非同步consle的趣味竅門

特別宣告 本文是作者 Tomek Sułkowski 釋出在 medium 上的一個系列。據作者透露一共有24篇,一直更新到12月24日 版權歸原作者所有。 前兩篇的翻譯連結我已經給到了作者本人,雖然他不理解中文,但是他還是很開心哈哈,截圖在最後 譯者在翻譯前已經和作者溝通得到了翻譯整個系列的許可。 為

【譯】知道的Chrome除錯工具技巧 第一天:console中的'$'

特別宣告 本文是作者 Tomek Sułkowski 釋出在 medium 上的一個系列。 版權歸原作者所有。 譯者在翻譯前已經和作者溝通得到了翻譯整個系列的許可。 為了不影響大家閱讀,獲得許可的記錄會放在本文的最後~ 正文 在馬上就要迎來假期的這24天裡,我將會發布一系列短篇的文章,關於如何將開發工具

【譯】知道的Chrome除錯工具技巧 第二天:copying & saving

特別宣告 本文是作者 Tomek Sułkowski 釋出在 medium 上的一個系列。 版權歸原作者所有。 譯者在翻譯前已經和作者溝通得到了翻譯整個系列的許可。 為了不影響大家閱讀,獲得許可的記錄會放在本文的最後~ 正文 在馬上就要迎來假期的這 24 天裡,我將會發布一系列短篇的文章,關於如何將開發

【譯】知道的Chrome除錯工具技巧 第四天:the Elements panel(元素面板)

特別宣告 本文是作者 Tomek Sułkowski 釋出在 medium 上的一個系列。據作者透露一共有24篇,一直更新到12月24日 版權歸原作者所有。 前兩篇的翻譯連結我已經給到了作者本人,雖然他不理解中文,但是他還是很開心哈哈,截圖在最後 譯者在翻譯前已經和作者溝通得到了翻譯整個系列的許可。 為

【譯】知道的Chrome除錯工具技巧 第五天:console的log中,讓人疑惑的案例

特別宣告 本文是作者 Tomek Sułkowski 釋出在 medium 上的一個系列。據作者透露一共有24篇,一直更新到12月24日 版權歸原作者所有。 前兩篇的翻譯連結我已經給到了作者本人,雖然他不理解中文,但是他還是很開心哈哈,截圖在最後 譯者在翻譯前已經和作者溝通得到了翻譯整個系列的許可。 為

【譯】知道的 Chrome 除錯工具技巧 第九天:給 console 計時

特別宣告 本文是作者 Tomek Sułkowski 釋出在 medium 上的一個系列。據作者透露一共有 24 篇,一直更新到 12 月 24 日 版權歸原作者所有。 前兩篇的翻譯連結我已經給到了作者本人,雖然他不理解中文,但是他還是很開心哈哈,截圖在最後 譯者在翻譯前已經和作者溝通得到了翻譯整個系列

【譯】知道的 Chrome 除錯工具技巧 第十一天:style editors continued(樣式編輯器後續)

特別宣告 本文是作者 Tomek Sułkowski 釋出在 medium 上的一個系列。據作者透露一共有 24 篇,一直更新到 12 月 24 日 版權歸原作者所有。 作者在Twitter上推薦我們的中文翻譯啦,截圖在最後 譯者在翻譯前已經和作者溝通得到了翻譯整個系列的許可。 為了不影響大家閱讀,許可

【譯】知道的 Chrome 除錯工具技巧 第十二天:忍者日誌列印!(the ninja logs)

特別宣告 本文是作者 Tomek Sułkowski 釋出在 medium 上的一個系列。據作者透露一共有 24 篇,一直更新到 12 月 24 日 版權歸原作者所有。 作者在Twitter上推薦我們的中文翻譯啦,截圖在最後 譯者在翻譯前已經和作者溝通得到了翻譯整個系列的授權。 為了不影響大家閱讀,授權

【譯】知道的 Chrome 除錯工具技巧 第十四天:其他快捷鍵~

特別宣告 本文是作者 Tomek Sułkowski 釋出在 medium 上的一個系列。據作者透露一共有 24 篇,一直更新到 12 月 24 日 版權歸原作者所有。 作者在 Twitter 上推薦我們的中文翻譯啦,截圖在最後 譯者在翻譯前已經和作者溝通得到了翻譯整個系列的授權。 為了不影響大家閱讀,

【譯】知道的 Chrome 除錯工具技巧 第十三天:物件 & 方法

特別宣告 本文是作者 Tomek Sułkowski 釋出在 medium 上的一個系列。據作者透露一共有 24 篇,一直更新到 12 月 24 日 版權歸原作者所有。 作者在 Twitter 上推薦我們的中文翻譯啦,截圖在最後 譯者在翻譯前已經和作者溝通得到了翻譯整個系列的授權。 為了不影響大家閱讀,

【譯】知道的 Chrome 除錯工具技巧 第十六天:斷點

特別宣告 本文是作者 Tomek Sułkowski 釋出在 medium 上的一個系列。據作者透露一共有 24 篇,一直更新到 12 月 24 日 版權歸原作者所有。 作者在Twitter上推薦我們的中文翻譯啦,截圖在最後 譯者在翻譯前已經和作者溝通得到了翻譯整個系列的授權。 為了不影響大家閱讀,授權

【譯】知道的 Chrome 除錯工具技巧 第二十一天:Snippets(程式碼塊)

特別宣告 本文是作者 Tomek Sułkowski 釋出在 medium 上的一個系列。據作者透露一共有 24 篇,一直更新到 12 月 24 日 版權歸原作者所有。 作者在 Twitter 上推薦我們的中文翻譯啦,截圖在最後 譯者在翻譯前已經和作者溝通得到了翻譯整個系列的授權。 為了不影響大家閱讀,

【譯】知道的 Chrome 除錯工具技巧 第二十三天:Drawer tips 後續

特別宣告 本文是作者 Tomek Sułkowski 釋出在 medium 上的一個系列。據作者透露一共有 24 篇,一直更新到 12 月 24 日 版權歸原作者所有。 作者在 Twitter 上推薦我們的中文翻譯啦,截圖在最後 譯者在翻譯前已經和作者溝通得到了翻譯整個系列的授權。 為了不影響大家閱讀,

【譯】知道的 Chrome 除錯工具技巧 第二十二天:network

特別宣告 本文是作者 Tomek Sułkowski 釋出在 medium 上的一個系列。據作者透露一共有 24 篇,一直更新到 12 月 24 日 版權歸原作者所有。 作者在 Twitter 上推薦我們的中文翻譯啦,截圖在最後 譯者在翻譯前已經和作者溝通得到了翻譯整個系列的授權。 為了不影響大家閱讀,

知道的 Chrome 除錯工具技巧

掘金地址: https://juejin.im/post/5c09a80151882521c81168a2  【譯】你不知道的 Chrome 除錯工具技巧 第一天:console 中的'$' 【譯】你不知道的 Chrome 除錯工具技巧 第二天:copying &

可能知道的 Android Studio 技巧之「多行編輯」

Android Studio 大家應該都很熟悉了,但是可能很多人都僅限基本的功能使用,而 Android Studio 非常強大,有很多非常實用卻又鮮為人知的小技巧,熟練掌握這些小技巧將能極大的提高你的工作效率,今天就來給大家介紹一個很實用的小技巧「多行編輯」。

idea萬能快捷鍵(alt enter),知道的17個實用技巧!!!

說明 IDEA裡有一個萬能快捷鍵(alt enter),功能非常強大,同一個快捷鍵,可以根據不同的語境提示你不同的操作, 很多人可能還不瞭解這些功能,在處理程式碼的時候還手動處理,瞭解這些技巧之後,你編碼也是一種享受。 萬能快捷鍵(alt enter)可以幫你做很多事情,我大概總結了17點: 轉換lambd

或許知道的10條SQL技巧

提高效率 經驗 查詢 中國 nbsp 結果集 復雜 移動 前綴 這幾天在寫索引,想到一些有意思的TIPS,希望大家有收獲。 一、一些常見的SQL實踐 (1)負向條件查詢不能使用索引 select * from order where status!=0 and st

海天醬油教知道的C語言程式設計技巧

在C語言程式設計中,我們經常會遇到這種情況,在某個函式中經過演算法處理以後得到一個字串型別的結果,可能需要將這個字串以指標的形式進行返回,那麼如何在函式中正確返回該字串的內容呢? 例如,定義一個函式,要求該函式能夠返回一個指向字串“I love C.”的指標並能在主程式中正確得到該字串的內容