SpringBoot远程debug(Intellij IDE )

    运行在服务器上的服务,总会出现一些奇葩的问题,本地启动服务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

SpringBoot远程debug(Intellij IDE )

步骤2:选择Remote

SpringBoot远程debug(Intellij IDE )

步骤3:配置远程地址,Debug端口

SpringBoot远程debug(Intellij IDE )

Host:服务器主机地址

Port:服务器监听端口(远程debug端口)