如果你也會這樣調試,那真是泰酷辣

一、引言

工欲善其事,必先利其器,學會如何利用 IDEA 高效 debug ,將會大大提升我們的工作效率。基本的斷點調試方式就不講解了,網上有很多優秀的文章,這裏會主要舉一些我們日常工作中重要但是容易被忽視的調試技巧。

二、正文

2.1 不暫停的 debug

通常情況下,我們斷點的時候,會卡住當前線程。假設我們在主預發或者公用環境進行debug,就老感覺背後有人在罵我,誰又在debug,環境怎麼又不通了!所以當我們想要愉快在公用環境debug的時候要:

查看變量值

不暫停直接觀察相關變量值

強行改變變量值

是誰調用了我

可以直接觀察到調用堆棧,類似 Arthas 的 trace

你進來了不

如果執行了斷點所在位置,會在控制檯打出一行日誌:

2.2 快速執行表達式

我們通常在調試的時候,利用 Evaluate Expression...(option + F8),可以進行我們的表達式執行。

有一定開發經驗的小夥伴肯定使用過這個功能,因爲在工作中,這個調試技巧使用的頻率還蠻高的,我們可以利用快捷鍵高效調試,例如下圖:

動圖封面

快捷鍵:alt + d 喚起執行窗口 -> option + F9 定位光標處 -> option + command + f8 快速執行表達式

2.3 調試的時光倒流

有的時候,我們的小夥伴可能心太急,一路迅速 deubg,卻忘記沿途的風景了,這個時候我們就需要利用到 drop frame,具體操作如下圖所示:

動圖封面

2.4 僅調試循環中的一個條件

有的時候,我們只想調試 for 循環中的某個條件,假設我們這個循環有 100 次,其中只有第99次的循環是我們想要的,如果我們一直點點點,點到第99次,那真是有一點痛苦,我們可以這樣:

動圖封面

2.5 誰給變量賦的值?

在我們的項目中,假設有個變量 a,我想知道這個流程中到底是誰給 a 賦過值,結果一反引,幾百處引用,那麼我該如何知道誰在方法中給 a 賦了值,我們只需要在 pojo 對象的 a 字段上打上斷點即可,動圖展示一下:

動圖封面

2.6 這個方法何去何從

在我們的項目中,有個接口 a,但是有無數的類實現了這個接口 a,我想調試到真正執行 a 方法的地方,我該怎麼做?在無數實現類中 debug 嗎?我們可以將斷點打在這個接口 a 方法上(當然,這個將會使你的 debug 變慢)。

2.7 斷點執行至光標處

我們當前斷點停止在第 5 行,假設我們想斷點調試第 12 行,一般來說,我們在 12 行斷點,然後直接往下走即可:

但其實我們可以這樣:

直接 Run to Cursor (強烈建議快捷鍵操作,更加絲滑 option + F9),就可以直接斷點到我們的 12 行。

2.8 異常斷點

全局異常斷點,會自動斷點到我們出現異常的地方,具體操作可見圖:

動圖封面

作者:有清

原文鏈接

本文爲阿里雲原創內容,未經允許不得轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章