華文網

Java程式師,你會在Eclipse IDE中調試代碼嗎?

調試是所有Java程式師的必備技能。本文將從初學者指南開始,説明程式師學習調試。在本文的第二部分,你還可以看到有關新版Eclipse Oxygen中如何調試的講解。

調試是從程式中定位和刪除bug或異常的常規過程。

對於Java程式師來說,這是一個必須具備的技能,因為它有助於找到在代碼審查過程中不可見的微妙錯誤,或者僅在特定情況下發生的錯誤。Eclipse Java IDE在“Debug Perspective”選項下提供了許多調試工具和視圖,可幫程式師高效調試。

初學者指南——快速啟動調試

以下是一些快速提示和工具,可幫助程式師快速開始調試Java專案。

1.啟動和調試Java程式

可以通過從Package Explorer中按右鍵Java編輯器類檔來簡單地調試Java程式。

選擇Debug As→Java Application,或者使用Alt + Shift + D,J代替快捷方式。

在大多數情況下,使用者可以在調試時編輯和保存代碼,而無需重新開機程式。這適用於HCR(熱代碼替換)支援,HCR已被特別添加為標準Java技術,以促進實驗開發並促進反覆運算。

2.中斷點

中斷點是一個信號,告訴調試器在代碼中的某一點暫時中止程式的執行。

要在原始程式碼中定義中斷點,請按右鍵Java編輯器中的左邊距,然後選擇切換中斷點。

或者,您可以按兩下此位置。“中斷點”視圖允許程式師刪除和停用中斷點並修改其屬性。

所有中斷點可以使用跳過所有中斷點啟用/禁用。中斷點也可以導入/匯出到工作區。

3. Debug perspective

debug perspective提供了可用於對中斷點,變數,調試,控制台等進行故障排除的其他視圖。

當在調試模式下啟動Java程式時,會提示使用者切換到debug perspective。

debug perspective - 視覺化調用堆疊並提供操作。

Breakpoints view - 顯示所有中斷點。

Variables/Expression view - 顯示聲明的變數及其值。在選定的變數或運算式上按Ctrl + Shift + d或Ctrl + Shift + i顯示其值。您還可以在運算式/變數上添加永久性表,然後在調試開啟時,將在“運算式”視圖中顯示。

Display view - 允許在調試期間檢查變數,運算式或所選文本的值。

Console view - 程式輸出如下所示。

4.按步驟調試

Eclipse Platform通過在工具列中提供按鈕和快速鍵的方式來説明程式師進行調試,以控制程式的執行。

調試複雜場景的高級工具

本節將為您提供更多高級提示和技巧,以調試Java項目。Eclipse Oxygen版本包含許多Java調試的極大改進。

1、觀察點,異常中斷點,條件中斷點

觀察點 - 觀察點是特定的中斷點,只要給定運算式/欄位的值發生更改,而不指定可能發生的位置,就會停止應用程式的執行。 使用者可以通過“中斷點屬性”...指定監視運算式被訪問,修改或同時停止執行。

異常中斷點 - 使用添加Java異常中斷點指定拋出異常的中斷點。NullPointerException的中斷點將在每次拋出此異常時停止。

條件中斷點 - Eclipse用戶可以創建條件來限制中斷點的啟動。

只有當布林值b為真時,才會啟動中斷點。可以提供命中計數以在中斷點的第n個命中停止執行。中斷點被禁用,直到它被重新啟用或其命中計數更改或程式結束為止。

2.遠端調試

Eclipse IDE允許程式師調試在另一個Java虛擬機器(JVM)上甚至另一台機器上運行的應用程式。要啟用遠端調試,需要啟動具有某些標誌的Java應用程式。連接類型可以指定為Socket Attach或Socket Listen。Socket Listen支持多個傳入連接。

Eclipse Oxygen的新功能

以下是添加到Eclipse Java IDE版本中的新功能。

追蹤點

Eclipse平臺中的一個新功能,允許用戶創建條件中斷點來列印消息,而不會在中斷點處停止並使代碼塊混亂。

Eclipse Platform使用systrace範本創建了tracepoint。

觸發點

程式師可啟動觸發點,為工作區中的中斷點定義一組觸發點。觸發器最初被抑制的所有其他中斷點只有在觸發點被觸發之後才會被擊中。觸發點被觸發後,所有的觸發器被禁用,並且在運行後將被重新啟用。

通過使用中斷點屬性,可以通過“中斷點”視圖的對話方塊或詳細資訊窗格將任何中斷點設置為觸發點。

邏輯結構

在 Variables view中,集合物件直接顯示其包含的元素,而不是其內部結構。預設情況下,在Oxygen釋放中啟動邏輯結構,可以關閉顯示邏輯結構以顯示內部結構。

顯示邏輯結構上下文功能表允許程式師創建,選擇或編輯表示。

步驟操作後的方法結果

在調試過程中,在“進入”,“逐步”或“返回”期間觀察到的最後一個方法的結果(每次返回或拋出)在“變數”視圖中顯示為第一行。

啟動組

啟動組在Oxygen中也是新增功能,啟動組啟動配置類型允許按順序啟動多個其他配置,並在啟動每個組成員後執行可配置的操作。可以通過運行→運行配置...或運行→調試配置...對話方塊創建新的啟動組。

中斷點分組和排序

Eclipse使用者現在可以根據Eclipse Oxygen中的不同類別對中斷點進行分組。中斷點工作集定義了一組中斷點。用戶可以在工作集上執行啟用/禁用操作。

以調試Java項目。Eclipse Oxygen版本包含許多Java調試的極大改進。

1、觀察點,異常中斷點,條件中斷點

觀察點 - 觀察點是特定的中斷點,只要給定運算式/欄位的值發生更改,而不指定可能發生的位置,就會停止應用程式的執行。 使用者可以通過“中斷點屬性”...指定監視運算式被訪問,修改或同時停止執行。

異常中斷點 - 使用添加Java異常中斷點指定拋出異常的中斷點。NullPointerException的中斷點將在每次拋出此異常時停止。

條件中斷點 - Eclipse用戶可以創建條件來限制中斷點的啟動。

只有當布林值b為真時,才會啟動中斷點。可以提供命中計數以在中斷點的第n個命中停止執行。中斷點被禁用,直到它被重新啟用或其命中計數更改或程式結束為止。

2.遠端調試

Eclipse IDE允許程式師調試在另一個Java虛擬機器(JVM)上甚至另一台機器上運行的應用程式。要啟用遠端調試,需要啟動具有某些標誌的Java應用程式。連接類型可以指定為Socket Attach或Socket Listen。Socket Listen支持多個傳入連接。

Eclipse Oxygen的新功能

以下是添加到Eclipse Java IDE版本中的新功能。

追蹤點

Eclipse平臺中的一個新功能,允許用戶創建條件中斷點來列印消息,而不會在中斷點處停止並使代碼塊混亂。

Eclipse Platform使用systrace範本創建了tracepoint。

觸發點

程式師可啟動觸發點,為工作區中的中斷點定義一組觸發點。觸發器最初被抑制的所有其他中斷點只有在觸發點被觸發之後才會被擊中。觸發點被觸發後,所有的觸發器被禁用,並且在運行後將被重新啟用。

通過使用中斷點屬性,可以通過“中斷點”視圖的對話方塊或詳細資訊窗格將任何中斷點設置為觸發點。

邏輯結構

在 Variables view中,集合物件直接顯示其包含的元素,而不是其內部結構。預設情況下,在Oxygen釋放中啟動邏輯結構,可以關閉顯示邏輯結構以顯示內部結構。

顯示邏輯結構上下文功能表允許程式師創建,選擇或編輯表示。

步驟操作後的方法結果

在調試過程中,在“進入”,“逐步”或“返回”期間觀察到的最後一個方法的結果(每次返回或拋出)在“變數”視圖中顯示為第一行。

啟動組

啟動組在Oxygen中也是新增功能,啟動組啟動配置類型允許按順序啟動多個其他配置,並在啟動每個組成員後執行可配置的操作。可以通過運行→運行配置...或運行→調試配置...對話方塊創建新的啟動組。

中斷點分組和排序

Eclipse使用者現在可以根據Eclipse Oxygen中的不同類別對中斷點進行分組。中斷點工作集定義了一組中斷點。用戶可以在工作集上執行啟用/禁用操作。