java實現遠程調試


遠程調試

主動連接調試:服務端配置監控端口,本地IDE連接遠程監聽端口進行調試,一般調試問題用這種方式。

被動連接調試:本地IDE監聽某端口,等待遠程連接本地端口。一般用於遠程服務啟動不了,啟動時連接到本地調試分析。

主動連接調試demo

我這里已經有個數據路由的項目,我以這個項目為例;

主動連接需要先啟動服務端,后啟動客戶端

1.把項目打成jar包

選中項目右鍵----->Export--->Runnable JAR file,點擊Next

2.選擇程序入口和項目路徑,點擊finish完成

3.把導出的jar包放到指定盤符,我這里拷貝到了D盤,打開cmd窗口

輸入命令:

jdk1.7版本之前的命令

java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y -jar xxx.jar

1.7版本之后的命令

1) java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y -jar xxx.jar

2) java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -jar test.jar

4.在eclipse中配置遠程調試,右鍵項目----->Debug As----->Debug Configurations

第一次進來時,需要New一個Dcat

 

 

進入調試模式

被動連接調試demo

我這里還是以Dcat項目為例;

被動調試時eclipse作為服務端,運行的jar包作為客戶端,所以先啟動eclipse,再運行jar包;

1.在eclipse中配置遠程調試,右鍵項目----->Debug As----->Debug Configurations

 

 2.打開cmd窗口,輸入命令

 1) java -agentlib:jdwp=transport=dt_socket,address= 172.18.11.216:8000,suspend=n -jar Dcat.jar 
 2) java -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000,suspend=y -jar Dcat.jar 

3.進入調試模式

命令參數詳解

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -jar test.jar

-Xdebug:通知JVM工作在debug模式下;

-Xrunjdwp:通知JVM使用(java debug wire protocol)來運行調試環境;

transport:監聽Socket端口連接方式(也可以dt_shmem共享內存方式,但限於windows機器,並且服務提供端和調試端只能位於同一台機);

server:server=y表示當前是調試服務端,=n表示當前是調試客戶端;

suspend:suspend=n表示啟動時不中斷,一般用於設置主動連接;suspend=y表示啟動時就進入調試模式,一般用於被動連接;

說明:不管是主動連接還是被動連接,我這里都嘗試了設置suspend=y或suspend=n,最后的結果好像都一樣,具體原因我也不清楚。

遠程調試OSGI

說明:我這里只能演示OSGI的被動連接,主動連接由於不能連接設備展示演示不了

1.在F:\OSGICloundEnv0.1\conf文件夾下的wrapper.conf文件中添加如下配置

wrapper.java.additional.8=-Xdebug

wrapper.java.additional.9=-Xnoagent

wrapper.java.additional.10=-Djava.compiler=NONE

wrapper.java.additional.11=-Xrunjdwp:transport=dt_socket,address=172.18.11.226:8888,suspend=n

2.在eclipse中配置遠程調試,右鍵項目----->Debug As----->Debug Configurations

3.啟動osgi

clean.bat

runosgi.bat

4.進入到調試界面

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM