Java遠端除錯(Remote Debug)方法——以Eclipse為例
Java遠端除錯的原理是兩個VM之間通過debug協議進行通訊,然後以達到遠端除錯的目的。兩者之間可以通過socket進行通訊。
首先被debug程式的虛擬機器在啟動時要開啟debug模式,啟動debug監聽程式。jdwp是Java Debug Wire Protocol的縮寫。
在啟動程式時,將以下引數選項新增到自定義的命令列中,程式就會以支援RemoteDeubg的方式啟動。
wrapper.java.additional.1=-Xdebug
wrapper.java.additional.2=-Xrunjdwp:transport=dt_socket,server=y,address=7899,suspend=n
DEBUG選項引數的意思:
-XDebug 啟用除錯;
-Xrunjdwp 載入JDWP的JPDA參考執行例項;
transport 用於在除錯程式和VM使用的程序之間通訊;
dt_socket 套接字傳輸;
server=y/n VM是否需要作為除錯伺服器執行;
address=7899 除錯伺服器監聽的埠號;
suspend=y/n 是否在除錯客戶端建立連線之後啟動 VM 。
程式準備好之後,再配置一下Eclipse,讓它去訪問遠端的VM了。過程相當簡單!
先在程式中打好斷點,然後
Run-->Debug Configurations…-->Remote Java Application-->右鍵New-->填寫Host和Port(例如,Host:10.75.0.103,Port:7899)-->Debug
Eclipse debug快捷鍵:
F5 Step into
F6 Step over
F7 Step out
F8 continue to the next breakpoint