除錯是開發者繞不開的核心技能。無論採用何種手段,核心目標皆為精準定位觸發錯誤的程式碼行。以 Linux 應用程式常見的「分段錯誤」為例,當程式嘗試存取未配置的記憶體區域導致異常終止時,若能快速鎖定問題程式碼並檢視當下的變數值、呼叫堆疊與執行脈絡,解決問題將事半功倍。Eclipse 內建的除錯器與 Debug 視圖正是為此而生的利器。
Eclipse 平台以 Java 開發工具 (JDT) 為核心,內建標準除錯插件,提供單步執行、斷點管理、變數檢視、執行緒暫停/恢復等完整功能,並支援遠端應用程式除錯。雖以 Java 為主,但其 Debug 視圖架構開放擴展,同樣適用於 C/C++ 開發(需安裝 CDT 外掛)。
Debug 視圖以樹狀結構呈現每個除錯目標的執行緒與堆疊幀。執行緒為樹節點,暫停時其堆疊幀顯示為子元素,直觀反映程式執行狀態。
開始前請確認已安裝:
建議先用 Eclipse 範例專案驗證除錯環境是否正常運作。
在 Package Explorer 雙擊原始檔開啟編輯器,於左側標記欄雙擊即可設定行斷點。注意:避免將多行陳述式寫在同一行,否則無法對單一陳述式設定斷點或單步跳過。
當錯誤發生條件複雜時,可設定條件斷點:僅當指定運算式值改變或為真時觸發中斷,避免逐行單步執行的低效。支援程式碼輔助輸入運算式。
於 Debug 視圖選取執行緒點擊 Suspend 按鈕可暫停執行,編輯器將高亮顯示當前執行行。滑鼠懸停變數可即時查看值。
JVM 1.4+ 配合 Eclipse 2.0.2/2.1 提供 Hotswap Bug Fixing:除錯過程中修改原始碼後直接恢復執行即可生效,無需重新啟動除錯會話。此功能基於 JPDA (Java Platform Debugger Architecture) 實現,極大縮短修改-驗證週期。
Eclipse 支援連接遠端 JVM 進行除錯。設定步驟:
遠端除錯可用性完全取決於遠端主機 JVM 的配置。
CDT 透過 GNU GDB 提供 C/C++ 除錯前端,整合於同一 Debug 視圖。使用前需:
-g 參數產生除錯符號(-ggdb 含 GDB 專用符號)啟動後即可設定斷點、追蹤變數與暫存器。
透過 Sysdeo Eclipse Tomcat Launcher 管理 Tomcat 容器並註冊內部除錯器,或使用 Cactus、Resin、X-Parrots ServletExec 等外掛實現 Servlet 除錯。
Eclipse 提供統一、強大的除錯體驗:內建 Java 除錯器支援完整標準功能與遠端除錯;透過 CDT 整合 GDB 支援 C/C++;Debug 視圖提供一致的多語言除錯介面。掌握斷點策略、條件中斷、運算式求值、變數監視與熱代碼替換等技巧,將顯著提升除錯效率。