idea远程debug 断点调试
一、我们写一个简单的API接口,用来测试
@RestController
public class HelloController {@GetMapping("/hello/user")public String hello(@RequestParam("num") Integer num){System.out.println(num);if(num>10){return "hello world";}return "hello!";}} 
二、在项目的pom文件内配置支持远程调试
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><jvmArguments>-Xdebug -Xrunjdwp:server=y,suspend=n,address=5005,transport=dt_socket</jvmArguments></configuration></plugin></plugins>
</build> 
增加了此配置之后,打包部署后即可支持远程debug调试了
具体参数说明:
-Xdebug:通知JVM工作在debug模式下。
-Xrunjdwp:通知JVM使用(java debug wire protocol)运行调试环境。该参数同时包含了一系列的调试选项。
**transport**:指定了调试数据的传送方式。
dt_socket:是指用socket模式。
dt_shmen:是指共享内存方式,但只适用于Windows平台。
address:调试服务器的端口号,客户端用来连接服务器的端口号。
server=y/n VM 是否需要作为调试服务器执行。
suspend=y/n 是否在调试客户端建立连接之后启动VM。
三、idea将项目打包成jar

四、启动jar包并且带启动参数支持远程调试
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar xxx.jar

五、idea 远程 debug配置
1.选择 Edit configurations 编辑配置
![]()
2.点击添加 一个remote JVM Debug

3.添加远程debug配置项,host 和 port 配置后,点击保存。

六、idea 远程debug测试
1.我们将刚刚创建的 remote Test 按debug方式启动
![]()
2.然后再方法内打上断点

3.使用postman进行调用测试。

4.调用后可以看到断点进入到了idea

5.我们断点走一步后,可以看到 打印的输出是在 jar启动的命令窗口中,而不是idea的控制台。


