一、 前提

  需要准备JDK1.8环境安装IDEA(版本不限)

二、 IDEA中如何实现远程Debug模式

(1)、创建demo项目

1.File一>New一>project
在这里插入图片描述
2.Maven Archetype一>填写Name一>选择jdk1.8一>选择Web一>创建

在这里插入图片描述

(2)、引入依赖

参数详解

【-Xdebug】:通知JVM工作在DEBUG模式下。
【-Xrunjdwp】:通知JVM使用(Java debug wire protocol)运行调试环境
transport】:指定调试数据的传送方式dt_socket是指用SOCKET模式,另有dt_shmem指用共享内存方式。据说:dt_shmem只适用于Windows平台
address】:调试服务器端口号客户端用来连接服务器端口号(一般工具默认5005端口,也可以自定义这个没有关系)。
server=y/n】:VM 是否需要作为调试服务器执行(选择y)。
suspend=y/n】:是否调试客户端建立连接之后启动 VM。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.5.RELEASE</version>
    <relativePath/>
  </parent>
  <groupId>com.le</groupId>
  <artifactId>remote-idea</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>remote-idea Maven Webapp</name>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <!--启动类jar包-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
    </dependency>

  </dependencies>

  <build>
    <finalName>remote-idea</finalName>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n</jvmArguments>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

(3)、创建启动类和创建demo

启动类:

package com.le;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author: le
 * @date: 2023年05月10日 11:25
 * @ClassName: RemoteIdeaApplication
 * @Description: TODO
 */
@SpringBootApplication
public class RemoteIdeaApplication {
    public static void main(String[] args) {
        SpringApplication.run(RemoteIdeaApplication.class, args);
    }
}

测试demo:

package com.le.controller;

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

/**
 * @author: le
 * @date: 2023年05月10日 11:31
 * @ClassName: TestDemoController
 * @Description: TODO
 */
@RestController
public class TestDemoController {

    @PostMapping("/test")
    public String test(Integer id, String name) {
        System.out.println("id=" + id);
        System.out.println("name=" + name);
        if (id > 0) {
            return "le " + name;
        } else {
            return "false";
        }
        
    }
}

启动,测试一下demo是否正常

在这里插入图片描述
在这里插入图片描述

(4)、配置idea

在这里插入图片描述
找到Remote Jvm Debug
在这里插入图片描述

填写名称输入IP地址pom里面配置端口,选择jdk对应版本,选择debug模块

注意:
选择 jdk9以上,则为
agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:1111

在这里插入图片描述
打包
在这里插入图片描述

在这里插入图片描述

把Jar包放入在D盘根目录下面,然后使用CMD命令启动

javaagentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 –jar remoteidea.jar

在这里插入图片描述
在IDEA中启动,打上断点

在这里插入图片描述

使用ApiPost测试
在这里插入图片描述

在这里插入图片描述
成功
在这里插入图片描述
这个时候我们可以开始Debug了,是不是方便找问题了,使用linux系统也是一样的,只是改变一下启动方式,还要防火墙问题

二、 IDEA的Debug优缺点

优点:断点打在本地直接访问线上程序即可,方便调试。(线上程序出了问题,无法根据log进行排查时)。

缺点: 可能会造成“阻塞”。(同一程序中,本地断点没走完之前,别的接口请求可能会“阻塞”)。

使用这种方式,有利有弊,根据不同场景判断是否使用

二、 Demo的源代码地址

百度网链接https://pan.baidu.com/s/1i6BxYLtGiRzxLXvlyMxtTw
提取码:pfg2

也可私信我,找我获取源代码


总结

  以上就是使用IDEA来实现远程Debug方法,希望能够帮助到大家点赞支持一下,谢谢!

原文地址:https://blog.csdn.net/le9528/article/details/130596819

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_43238.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注