我的编程空间,编程开发者的网络收藏夹
学习永远不晚

IDEA实现远程Debug调试(附上Demo代码)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

IDEA实现远程Debug调试(附上Demo代码)

目录


一、 前提

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

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

(1)、创建demo项目

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.0modelVersion>  <parent>    <groupId>org.springframework.bootgroupId>    <artifactId>spring-boot-starter-parentartifactId>    <version>2.3.5.RELEASEversion>    <relativePath/>  parent>  <groupId>com.legroupId>  <artifactId>remote-ideaartifactId>  <packaging>jarpackaging>  <version>1.0-SNAPSHOTversion>  <name>remote-idea Maven Webappname>  <dependencies>    <dependency>      <groupId>junitgroupId>      <artifactId>junitartifactId>      <version>3.8.1version>      <scope>testscope>    dependency>        <dependency>      <groupId>org.springframework.bootgroupId>      <artifactId>spring-boot-starter-webartifactId>    dependency>    <dependency>      <groupId>org.projectlombokgroupId>      <artifactId>lombokartifactId>    dependency>  dependencies>  <build>    <finalName>remote-ideafinalName>    <plugins>      <plugin>        <groupId>org.springframework.bootgroupId>        <artifactId>spring-boot-maven-pluginartifactId>        <configuration>          <jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=njvmArguments>        configuration>      plugin>    plugins>  build>project>

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

启动类:

package com.le;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic 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;@RestControllerpublic 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命令启动

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar remote-idea.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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

IDEA实现远程Debug调试(附上Demo代码)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

IDEA Debug如何实现多线程调试断点

这篇文章主要介绍了IDEA Debug如何实现多线程调试断点,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。多线程调试断点Intellij IDEA 的debug断点调试是有一
2023-06-27

goland远程调试k8s上容器的实现

本文主要介绍了goland远程调试k8s上容器的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-01

Android编程实现仿QQ发表说说,上传照片及弹出框效果【附demo源码下载】

本文实例讲述了Android编程实现仿QQ发表说说,上传照片及弹出框效果。分享给大家供大家参考,具体如下: 代码很简单,主要就是几个动画而已,图标什么的就随便找了几个,效果图: 动画说明: 1.点击右上角按钮,菜单从顶部下拉弹出,同时背
2022-06-06

基于微信小程序的网上购物平台小程序的设计与实现 服务器端口php+mysql(附源码 调试 文档)

基于微信小程序的网上购物平台小程序 一、引言二、国内外研究现状三、系统需求分析四、系统设计五、系统实现六、系统测试与评估七、结论八、界面展示九、源码获取 摘要 本文介绍了一种基于微信小程序的网上购物平台小程序,该系统主要分为两
基于微信小程序的网上购物平台小程序的设计与实现 服务器端口php+mysql(附源码 调试 文档)
2023-12-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录