遠端偵錯對應用程式開發十分有用。例如,為不能託管開發平台的低端機器開發程式,或 在專用的機器上(比如服務不能中斷的 Web 服務器)偵錯工具。其他情況包括:運行在記憶體 小或 CUP 效能低的裝置上的 Java 應用程式(比如行動裝置),或者開發人員想要將應用程 序和開發環境分開,等等。
先決條件
啟動配置類型
啟動配置 儲存一 組用於啟動程式的屬性。啟動配置類型是一種可以在 Eclipse 平台上啟動的獨特程式。
如果您還沒安裝該程式,請下載 Eclipse V3.4(Ganymede)。在 Ganymede 中,通訊端 (socket)監聽連接器被添加到 Remote Java Application 啟動配置類型。Eclipse 最新的 通訊端監聽連接器允許您開啟 Java 調試器,它能夠監聽特定通訊端上的串連。可以從命令 行選項開啟被調試的程式,並將其串連到調試器。在 Ganymede 發布之前,僅有一個串連套 接字的連接器,被調試的程式所在的機器必須是一個與調試器相連的調試主機。由於受到內 存和 CPU 不足的限制,要想讓行動裝置充當主機是不現實的。
為了進行遠端偵錯, 必須使用 Java Virtual Machine (JVM) V5.0 或更新版本,比如 IBM® J9 或 Sun Microsystem 的 Java SE Development Kit(JDK)。本文主要討論遠端偵錯,而不是每個 Eclipse 調試特性的細節。查看 參考資料 獲得更多關於使用 Eclipse 進行調試的資訊,並 且可以找到上面提到的軟體。
JPDA 簡介
常用縮寫詞
JDI — Java 調試介面(Java Debug Interface)
JDT — Java 開發工具(Java Development Tools)
JDWP — Java 調試網路通訊協定(Java Debug Wire Protocol)
JPDA — Java 平台調試器架構(Java Platform Debugger Architecture)
JVM — JAVA 虛擬機器(Java Virtual Machine)
JVMDI — JVM 調試介面(JVM Debug Interface)
JVMTI — JVM 工具介面(JVM Tool Interface)
VM — 虛擬機器(Virtual Machine)
Sun Microsystem 的 Java Platform Debugger Architecture (JPDA) 技術是一個多層架 構,使您能夠在各種環境中輕鬆調試 Java 應用程式。JPDA 由兩個介面(分別是 JVM Tool Interface 和 JDI)、一個協議(Java Debug Wire Protocol)和兩個用於合并它們的軟體 組件(後端和前端)組成。它的設計目的是讓調試人員在任何環境中都可以進行調試。JPDA 不僅能夠用於案頭系統,而且能夠在嵌入式系統上很好地工作。
JVM Tool Interface (JVMTI) 規定必須為調試提供 VM(編輯註:從 Java V5 開始,將 用 JVMTI 代替 Java V1.4 中的 JVMDI)。Java Debug Wire Protocol (JDWP) 描述調試信 息的格式,以及在被調試的進程和調試器前端之間傳輸的請求,調試器前端實現 JDI,比如 Eclipse、Borland JBuilder 等。根據 Sun 的 JPDA 規範,被調試的程式常常稱為 debuggee。JDI 是一個進階的介面,它定義用於遠端偵錯的資訊和請求。下面給出了調試器 的架構。
清單 1. Java 平台調試器架構
Components Debugger Interfaces / |--------------| / | VM | debuggee -----( |--------------| <---- JVMTI - Java VM Tool Interface \ | back-end | \ |--------------| / | comm channel --( | <------------ JDWP - Java Debug Wire Protocol \ | / |--------------| / | front-end | debugger -----( |--------------| <---- JDI - Java Debug Interface \ | UI | \ |--------------|