运行在服务器上的服务,总会出现一些奇葩的问题,本地启动服务debug测试无法复现问题,这时,远程debug可以快速的定位问题。
1.Linux服务器启动服务配置JVM参数
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=XXXX -jar XXX.jar
-Xdebug
启用调试特性
-Xrunjdwp
启用JDWP实现,它包含若干子选项:
transport=dt_socket
JPDA front-end和back-end之间的传输方法。dt_socket表示使用套接字传输。
address=XXXX
JVM在默认在8000端口上监听请求,是指服务器上的。
server=y
y表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。
suspend=y
y表示启动的JVM会暂停等待,直到调试器连接上。
suspend=y这个选项很重要。如果你想从Tomcat启动的一开始就进行调试,那么就必须设置suspend=y。
注意:本地可以访问服务器的监听端口
2.Intellij IDE 配置
步骤1:选择EditConfigration
步骤2:选择Remote
步骤3:配置远程地址,Debug端口
Host:服务器主机地址
Port:服务器监听端口(远程debug端口)