Eclipse Debug調試詳解

目錄

 

一、debug透視圖:

1、進入方式:​右上角點擊添加框,選擇“臭蟲”,再點擊小蟲。

2、debug調試下的一些常用一些透視圖,如果沒有自行添加,windows--->show view--->others--->選擇相應的透視圖,這些視圖後面調試時都會用到,沒有的按上面的操作添加。

3、視圖簡介:(稍微看看就好,重點結合後面的調試過程上手調試,然後觀察每個透視圖窗口的內容)

4、debug調試功能鍵詳解(debug調試中最重要的幾個功能鍵,一定記住的快捷鍵:F5/F6/F7/F8),可以先只看F5/F6/F7/F8,其餘的結合後面的調試過程細緻看,上手調試就很容易理解了。

5、數據查看:(該部分建議結合接下來的debug過程結合來看,不然看了也白看,前兩個用的比較多一點,前提時調試經過變量所在行,然後快捷鍵纔有效,具體調試的時候查看數據可以在Variables透視圖裏去查看,調試經過的行所涉及的變量均顯示在該視圖中)。

 

二、斷點類型(括號中爲使用頻率):

1、行斷點:(100%)

2、方法斷點:(70%)

3、觀察斷點(70%):

4、異常斷點(50%):

5、類斷點(10%):實際項目中根本就不用,類加載不完全,項目啓動不起來,還怎麼debug.

三、debug過程:

(我這裏的調試時一個Java Web的項目,簡單的java應用程序調試參看後面文章)

1、設置斷點:

打斷點:(快捷鍵:光標定位某一行,ctrl+shift+b)這裏設置了三類斷點

[ps:忽略所有斷點:(快捷鍵:Ctrl+Alt+b)]

2、啓動tomcat 開始debug調試:

3、post請求:

4、逐步調試:

四、相關快捷鍵:(提升開發及debug效率,建議讀者可以記下)


一、debug透視圖:

1、進入方式:右上角點擊添加框,選擇“臭蟲”,再點擊小蟲。

2、debug調試下的一些常用一些透視圖,如果沒有自行添加,windows--->show view--->others--->選擇相應的透視圖,這些視圖後面調試時都會用到,沒有的按上面的操作添加

3、視圖簡介:(稍微看看就好,重點結合後面的調試過程上手調試,然後觀察每個透視圖窗口的內容

4、debug調試功能鍵詳解(debug調試中最重要的幾個功能鍵,一定記住的快捷鍵:F5/F6/F7/F8),可以先只看F5/F6/F7/F8,其餘的結合後面的調試過程細緻看,上手調試就很容易理解了

5、數據查看:(該部分建議結合接下來的debug過程結合來看,不然看了也白看,前兩個用的比較多一點,前提時調試經過變量所在行,然後快捷鍵纔有效,具體調試的時候查看數據可以在Variables透視圖裏去查看,調試經過的行所涉及的變量均顯示在該視圖中)。

 

二、斷點類型(括號中爲使用頻率):

1、行斷點:(100%)

在方法中的某一行上打斷點,行斷點可以設置掛起線程/VM的條件,訪問次數。 
對於命中次數(hit count)的使用,一般是在循環中,第N個對象的處理有問題,設置hit count = N, 重調試時,可以方便到達需要調試的循環次數時,停下來調試。

2、方法斷點:(70%)

在方法上打斷點,方法斷點的好處是可以從方法方法進入或者退出時,停下來調試,類似行斷點,而且只有行斷點和方法斷點有條件和訪問次數的設置功能。但是方法斷點還有另外一個好處,如果代碼編譯時,指定不攜帶調試信息,行斷點是不起作用的,只能打方法斷點。 
有興趣的可以通過window--preferences---java---compilerAdd line number… 前的勾去掉, 調試下看看。

3、觀察斷點(70%):

在成員變量上打的斷點。只有實例成員變量有效果,類成員變量不起作用。

可以設置變量被訪問或者設置的時候掛起線程/VM ,也就所有對成員變量的訪問或者設置的方法都會被監控到 。

4、異常斷點(50%):

異常斷點可以通過Breakpoints透視圖的添加,或者點擊日誌信息中輸出的異常類信息添加。 
異常斷點,系統發生異常時,在被捕獲異常的拋出位置處或者程序未捕獲的異常拋出處, 掛起線程/VM, 也可以指定是否包括異常的子類也被檢測。 
另外除了以上正常設置的異常掛起,從java->debug中可以設置掛起執行,主要有下面兩個:

1、是否在發生全局未捕獲時掛起(suspend execution on uncaught exceptions),調試時,老是有異常掛起影響調試,但是沒有設置異常斷點的情況,就可以勾選掉這個選項;eclipse默認是勾選這個的。

2、是否在編譯錯誤時掛起,一般在邊調試邊改代碼時會發生這種情況;

5、類斷點(10%):實際項目中根本就不用,類加載不完全,項目啓動不起來,還怎麼debug.

在類名上打的斷點。接口上是打不了類加載斷點的,但是抽象類是可以的,只是在調試的時候,斷點不會明顯進入classloader中,單步進入只會進入到子類的構造方法中,非抽象類在掛起線程後單步進入就會到classloader中(如果沒有filter過濾掉的話)。類加載斷點不管是打在抽象或者非抽象類上,都會在類第一次加載或者第一個子類第一次被加載時,掛起線程/VM。
 

三、debug過程:

(我這裏的調試時一個Java Web的項目,簡單的java應用程序調試參看後面文章)

1、設置斷點:

打斷點:(快捷鍵:光標定位某一行,ctrl+shift+b)這裏設置了三類斷點

[ps:忽略所有斷點:(快捷鍵:Ctrl+Alt+b)]

2、啓動tomcat 開始debug調試:

3、post請求:

4、逐步調試:

四、相關快捷鍵:(提升開發及debug效率,建議讀者可以記下

1、代碼編輯窗口
功能 快捷鍵 說明
quick type hierarchy ctrl+t     查看當前類、接口的繼承層次, 默認進入時,顯示繼承/實現當前類/方法的子類,子接口;再次ctrl+t,將顯示當前類、接口繼承/實現的超類/接口;調試時,經常用該功能,在接口或抽象類的方法調用處,ctrl+t察看實現類,直接導航到對應的實現方法中。
quick outline ctrl+o 查看當前類的大綱,包括方法,屬性等內容; 用處不大;
open declarations F3 查看變量、屬性、方法定義的地方

 

 

 

 

 

 

2、Call Hierarchy窗口
功能 快捷鍵

說明

open call hierarchy ctrl+alt+h 查看方法被調用層次, 可以看當前方法被調用的地方,或者當前方法調用了其他類的方法

 

 

 

3、Type Hierarchy窗口
功能 快捷鍵 說明
open type hierarchy F4 查看繼承層次, 可以查看類的繼承層次,包括子類父類, 或者類實現的接口繼承層次,還會根據選擇的類/接口,在右邊顯示該類的大綱; 可以選擇是否顯示父類/父接口的屬性、方法等

 

 

 

4、Search 窗口
功能 快捷鍵 說明
declarations ctrl+g 相同的方法簽名在工作空間中及第三方jar包中被定義的位置
references ctrl+shif+g 當前選中的變量、屬性、方法在工作空間中及第三方jar包中被引用的位置
  ctrl+shift+u 查看變量、屬性 、方法在當前類中出現的地方

 

 

 

 

 

 

參考博文:

https://blog.csdn.net/u010075335/article/details/51222493

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