Intellij IDEA基于Springboot的远程调试
目录
简介
本篇博客介绍一下在Intellij IDEA下对Springboot类型的项目的远程调试功能。所谓的远程调试就是服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内部状态。
方法
配置 idea:
一. 首先,打开Edit configurations,点击+号,创建一个Remote应用。
填写name,配置Host地址(远程服务器地址, 如www.my.com, 或116.92.37.1)和端口(选一个未被占用的端口, 如5005)。
根据自己jdk的版本, 选择jvm的版本, 如JDK1.4.x, 则idea会自动在下面列出远程调试命令:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 // 针对JDK1.4.x
如果是选择JDK 5-8 或JDK 9或以上的版本, 则远程调试命令为:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 // 针对JDK5-9
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 // 针对jdk9或以上
最终idea设置如下:
配置服务器:
假设服务器原来启动项目的命令为:
java -jar test.jar
则现在把上面远程调试的命令加上重新启动项目即可:
java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 test.jar
服务器项目启动后, 可以用下面命令查看服务器是否在监听5005端口, 占用了就是正常的
netstat -anp | grep 5005 // Windows系统
lsof -i :5005 // linux/mac系统
本地远程调试:
通过以上步骤已经完成了服务器端参数的添加。下面启动刚才配置的Remote服务。在启动时候我们会发现此项启动程序只有debug启动模式。
启动完成,对需要debug的代码打上断点,剩下的操作步骤就是访问远程服务器对应的业务请求,本地就会同步debug。其余的操作与本地debug相同,此处就不再赘述了。 (友情提示: 如果对操作步骤不确定, 可以把idea中设置服务器ip为127.0.0.1, 本地跟本地远程调试)