JDWP全稱是Java Debug Wire Protocol,它定義了JPDA front-end和JPDA back-end之間通訊信息的二進制格式。
通訊信息主要包括兩種:調試器發送給JVM的請求信息和JVM發送給調試器的調試信息。
默認情況下,JVM並沒有啓用JPDA back-end。需要在啓動JVM的命令行加載以下參數:-Xdebug -Xrunjdwp:transport=dt_socket, address=8000,server=y,suspend=y
一、設置遠程調試端口
路徑 :tomcat/bin/catalina.bat、tomcat/bin/catalina.sh
- -Xdebug:啓用調試特性
- -Xrunjdwp:啓用JDWP實現,它包含以下若干子項:
- transport=dt_socket:JPDA front-end和back-end之間的傳輸方法。dt_socket表示使用套接字傳輸。
- address=8000:JVM在8000端口上監聽請求。
- server=y:y表示啓動的JVM是被調試者。如果爲n,則表示啓動的JVM是調試器。
- suspend=y:y表示啓動的JVM會暫停等待,直到調試器連接上。如果你想從Tomcat啓動的一開始就進行調試,那麼就必須設置suspend=y。
1.Windows設置:catalina.bat
SET CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=7705,server=y,suspend=n"
2.Linux設置:catalina.sh
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=7705,server=y,suspend=n"
二、IDEA連接遠程調試
1.注意事項
遠程調試時請確保本地代碼與遠程代碼相同。
Name:不必填
Host:遠程服務器的ip地址
Post:在catalina中設置的遠程調試端口address,不是服務器的端口
2.步驟
點擊 “Edit Configurations” ——》點擊左上角 “+”Add New Configuration ——》點擊 “Remote” ——》編輯右側區域中的 “Name”、“Host”、“Port”