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”