`jdb` 是 JDK 內建的命令列除錯工具,支援本地與遠端除錯。啟動方式:`jdb <類名>` 或附加至已啟動的 JVM(需 `-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005`)。
| 指令 | 功能 |
|---|---|
| stop at Class:line | 在指定行設中斷點 |
| stop in Class.method | 在方法進入處設中斷點 |
| clear Class:line | 清除中斷點 |
| step / next | 單步進入 / 單步跳過 |
| cont | 繼續執行 |
| print expr | 評估並印出運算式值 |
| locals | 顯示當前幀區域變量 |
| dump ID | 顯示物件詳細資訊 |
| threads / thread <id> | 列出/切換執行緒 |
| where [thread|all] | 印出堆疊追蹤 |
| classes | 列出已載入類別 |
| methods Class | 列出類別方法 |
| run [args] | 重新啟動除錯程式 |
| exit / quit | 離開 jdb |
圖形化 IDE(IntelliJ、Eclipse、VS Code)底層均使用 JDI 實現,日常開發建議優先使用 GUI 除錯器。