springboot远程debug

所谓的远程调试就是服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内部状态。下面介绍一下Intellij IDEA下对Springboot类型的项目的远程调试功能。

IDEA配置

首先,打开Edit configurations,点击+号,创建一个RemoteDebug应用。经过以下配置,就可以获得启动远程服务器的参数。

IDEA配置:

IDEA配置

远程服务器启动java应用

Java -jar启动添加如下参数

1
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 .\springboot-watermis-0.0.1-SNAPSHOT.jar
1
2
3
4
5
6
7
8
9
-Xdebug是通知JVM工作在DEBUG模式下(这里不加也是可以的)

-Xrunjdwp是通知JVM使用(java debug wire protocol)来运行调试环境

transport指定了调试数据的传送方式,dt_socket是指用SOCKET模式

server参数是指是否支持在server模式的VM中

suspend指明,是否在调试客户端建立起来后,再执行JVM

运行后可以看到在监听5005端口:

远程服务器监听端口

这样服务端就监听在5005端口了。可以通过以下命令来检查是否监听成功:

1
2
netstat -anp | grep 5005          # linux系统
netstat -ano | findstr 5005 # windows系统

IDEA中启动刚才配置的RemoteDebug服务

在启动时候我们会发现此项启动程序只有debug启动模式。

启动RemoteDebug:

启动RemoteDebug

启动完成,对需要debug的代码打上断点,剩下的操作步骤就是访问远程服务器对应的业务请求,本地就会同步debug。其余的操作与本地debug相同。

图1:

本地调试

图2:

本地调试

坚持原创技术分享,您的支持将鼓励我继续创作!