系列第三篇,聚焦 Eclipse 兩大進階斷點類型:監視點(屬性讀寫攔截)與方法斷點(方法進入/退出攔截),透過圖文演示配置技巧與實戰場景。
一、監視點:攔截屬性存取
在類別編輯器中,雙擊欄位聲明行左側標尺(或右鍵 Toggle Watchpoint),即可對該欄位的讀取、寫入分別設定攔截。
屬性配置
- Access:勾選 → 讀取欄位時中斷。
- Modification:勾選 → 寫入欄位時中斷。
實戰場景:某個 public static 配置欄位在不知何處被修改導致邏輯錯誤 → 對其設定 Modification 監視點,啟動調試,修改處自動中斷,調用棧一目瞭然。
二、方法斷點:攔截方法進入/退出
在類別編輯器中,雙擊方法聲明行左側標尺(或右鍵 Toggle Method Breakpoint)。
屬性配置
- Entry:勾選 → 方法進入時中斷(預設開啟)。
- Exit:勾選 → 方法退出時中斷(含正常返回、拋出異常)。
預設僅 Entry,調試「方法執行過程」需同時勾選 Exit。
實戰場景
- 參數/返回值追蹤:Entry 看入參,Exit 看返回值/異常,無需在方法內部打斷點。
- 介面方法多實現調試:在介面方法聲明打方法斷點,所有實現類調用均會中斷。
- 異常流追蹤:Exit 捕獲拋出異常瞬間,配合「Catch Points」定位異常源頭。
三、斷點屬性面板詳解
右鍵斷點 → Breakpoint Properties,通用高級選項:
| 選項 | 作用 |
| Conditional | 條件表達式(如 userId == 1001),滿足才中斷 |
| Hit Count | 命中 N 次後中斷(循環調試神器) |
| Suspend Thread / VM | 僅掛起當前執行緒 / 整個 VM |
| Filter | 類/包/執行緒過濾(大型專案必備) |
四、圖文操作流程
- 打開類別編輯器 → 定位目標欄位/方法聲明行。
- 雙擊左側標尺 → 圖標變為「眼鏡」(Watchpoint) 或「菱形」(Method Breakpoint)。
- 右鍵圖標 → Breakpoint Properties → 勾選 Access/Modification 或 Entry/Exit。
- Debug 模式啟動 → 執行觸發點 → 自動中斷 → Variables/Expressions 面板檢查值。
五、常見坑點
- 監視點不生效:欄位被
final 修飾且編譯期常量內聯 → 編譯器優化掉存取。解法:移除 final 或改為運行期賦值。
- 方法斷點效能影響大:大量方法斷點會顯著拖慢調試。建議:精準打在目標方法、用條件過濾、用完即刪除。
- 靜態初始化塊:
<clinit> 方法不可直接打方法斷點,需在類別載入前設定「Exception Breakpoint」捕獲 ExceptionInInitializerError。
- 上一篇文章: Java 記憶體洩漏解決方案(一):記憶體管理機制、洩漏成因、一般避免原則與複雜結構應對
- 下一篇文章: Java NIO 文件讀寫提速(二):Buffer 內部機制深度解析與 clear/flip 圖解
Copyright ©
程式碼之家 All Rights Reserved