IDEA进行RemoteDebug

本文介绍了如何在IntelliJ IDEA中设置并使用Remote Debug模式进行调试。在Remote Debug模式下,当用户请求到达server端时,如果遇到本地设置的断点,IDEA会进入调试模式,将远程堆栈信息传回本地。调试过程中,即使本地代码有语法错误也能继续调试,而且可以修改变量值并影响后续代码执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 非RemoteDebug模式

在该模式下,请求的处理过程为:用户发送请求到server端后,server端进行处理,返回将结果返回给用户。

2. RemoteDebug模式

在该模式下,请求的处理过程为:

(1)用户发送请求到server端;

(2)server端处理请求时,询问本地Intellij是否有断点,如果有,则在本地断点处进入debug模式,并将远程断点处的堆栈信息发送到本地;

(3)本地结束debug;

(4)server返回处理结果。

2.1 代码实现

1. 编写springboot web代码:

package com.john.remotedebug.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RemoteDebugTestController {

    @GetMapping("")
    public String hello(String name) {

        System.out.println("input param: " + name);

        System.out.println("success...");

        if ("errorTest".equals(name)) {
            int a = 2 / 0;
        }

        return "Hello " + name;
    }
}

2. 打好jar包

3. 配置intellij的remote debug

 拷贝标号4的内容;

4. cmd启动jar包:

java -Xdebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar demo-1.0.0.jar

5. 启动intellij的remote debug,并在某个位置打好断点

6.页面请求controller,intellij会在断点处进入debug模式

2.3 注意事项

1. 同一时间只能有一个intellij能够远程debug,第二个尝试进入时报错:

2. 远程debug时,不要求本地代码能够编译通过或者能够启动,下图是本地代码即没有编译,且存在语法错误,但仍能进入远程debug模式

 3. 可以在本地debug时,改变变量值,且能生效,例如,上图中改变name的值,后续代码能够以改变后的值进行处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值