Eclipse 偵錯技巧

  • 47088
  • 0

Eclipse 偵錯技巧

如同「Visual Studio 2010 偵錯技巧」所講,偵錯技巧相當重要。

好的 IDE 可以幫助你偵錯,快速找到問題並且有效解決。

程設設計師在轉換不同程式語言或是開發環境時,除了熟悉程式語言特性及環境的不同,

也需要儘快了解 IDE 可以幫助你的偵錯環境及相關技巧。

而艾小克覺得 IDE 的偵錯的熟悉,就如同災難自救術,程式設計師應盡可能早早學會及熟悉。

 

以下是艾小克最近用 Eclipse 編寫 Java 程式語言時的 Workbench 設定,主要有 Java 及 Debug 兩個工作模式,以下是 Debug 模式圖:

螢幕快照 2011-01-12 下午3.38.30-2

頁面上有許多的頁面,艾小克認為是偵錯時建議打開的,包括:

1. Debug :此頁面記錄程式碼呼叫的 Call Stack

2. Variables:此頁面記錄偵錯時,程式碼區段相關連的物件變數,相當於 Visual Studio 的 Auto 或是 Local 頁面。

3. Expression :此頁面相當於 Visual Studio 的 Watch 頁面,可以自定需要觀察的變數或是敘述。

4. Breakpoints:此頁面可以管理中斷點,並且設定各式各樣的中斷點,如:Conditional、Hit Count、Class Breakpoint 等等。

5. Outline:此頁面會將相關的 Package (Namespace)、Class、Method 展開,請且依照階層的方式來呈現,可以有效觀察程式碼的關聯。

6. Display:此頁面可以撰寫任意 Java 程式碼,藉此來幫助偵錯。

 


 

而在一般程式設計師使用 Breakpoint 時,常常使用的功能及快速鍵則可以透過 Run 功能表看到完整的功能:

1. Step Into (F5) : 逐行偵錯,遇到可以 Drill Down 的處理函式,可進入繼續偵錯
2. Step Over (F6):也是逐行偵錯,但遇到處理函式則不進入,直接將結果返回
3. Step Out (F7) :脫離函式,在使用逐行偵錯時,進入處理函式後如果想返回前一個 Call Stack 呼叫函式時使用
4. Resume (F8):繼續執行接下來的程式碼,遇到下個中斷點則才會停下來。
5. Run to Line (Ctrl + R or cmd + R):繼續執行接下來的程式碼,但在鍵盤游標所在的程式碼停下來。

螢幕快照 2011-01-12 下午3.38.43

 

而如同 Visual Studio 2010 一樣,Eclipse 也提供許多不同的中斷點類型,來幫助偵錯:

螢幕快照 2011-01-12 下午3.41.02

 

Breakpoints 頁面,管理目前程式碼中所有的中斷點,透過右鍵功能表的 Breakpoint Properties 可以進行調整:

螢幕快照 2011-01-12 下午3.41.11

 

1. Conditional:設定條件敘述,只有條件成立或是數值改變值,中斷點才會發生效用才會停止程式執行,

螢幕快照 2011-01-12 下午3.41.36

 

2. Hit Count:當監看的數值滿足我們設定的數值時,中斷點才會生效,適用於迴圈中觀察數值時使用

螢幕快照 2011-01-12 下午3.41.51

 

3. Filed Breakpoint:如果我們把中斷點設定在類別中的屬性上時,該中斷點就會變成 Filed Breakpoint。

在 Breakpoint Properties 頁面的設定也變得不一樣,可以設定 (1)存取屬性 (Field Access) (2)變更物件屬性值 (Field modification) 兩種啟用中斷點的時機。

螢幕快照 2011-01-12 下午3.42.08

 

4. Class Breakpoint:如果我們把中斷點設定在類別的宣告上時,該中斷點就會變成 Class Breakpoint。

在 Breakpoint Properties 頁面的設定也變得不一樣,可以設定在程式碼 new 物件的時候是否啟用中斷點。

螢幕快照 2011-01-12 下午3.42.28

 


 

Variables : 該頁面相當於 Visual Studio 2010 的 Auto 或是 Local 頁面,可以記錄偵錯時,程式碼區段相關連的物件變數。

螢幕快照 2011-01-12 下午5.37.35

 

Expressions:該頁面相當於 Visual Studio 的 Watch 頁面,可以自定需要觀察的變數或是敘述。

螢幕快照 2011-01-12 下午3.42.45

 

Display:此頁面可以撰寫任意 Java 程式碼,藉此來幫助偵錯。

螢幕快照 2011-01-12 下午3.42.54