SpringBoot 远程DEBUG调试

article/2025/10/11 11:35:48

我们在测试代码的时候,我们本地代码展示的效果可能和测试环境不一样,明明代码一样,但是效果不一样,代码已经部署到服务器端,因此远程连接服务器端远程调试很重要,实际开发较为常用.

一,调试命令

最为常见的远程调试命令

java -jar -Dserver.port=8092 -Dspring.profiles.active=test -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6001 message-center-0.0.1-SNAPSHOT.jar

当然还有下面这种:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6001 -jar -Dserver.port=8092 -Dspring.profiles.active=test

二,参数说明

1,transport
指定运行的被调试应用和调试者之间的通信协议,它由几个可选值:

dt_socket:主要的方式,采用 socket 方式连接
dt_shmem:采用共享内存方式连接,仅支持 Windows 平台(暂未验证)

2,server
当前应用作为调试服务端还是客户端,默认为 n。
如果你想将当前应用作为被调试应用,设置该值为 y;如果你想将当前应用作为客户端,作为调试的发起者,设置该值为 n。
3,suspend
当前应用启动后,是否阻塞应用直到被连接,默认值为 y。
在大部分的应用场景,这个值为 n,即不需要应用阻塞等待连接。一个可能为 y 的应用场景是,你的程序在启动时出现了一个故障,为了调试,必须等到调试方连接上来后程序再启动。
4,address
暴露的调试连接端口,默认值为 8000。
5,onthrow
当程序抛出设定异常时,中断调试。
6,onuncaught
当程序抛出未捕获异常时,是否中断调试,默认值为 n。
7,launch
当调试中断时,执行的程序。
8,timeout
该参数限定为 java -agentlib:jdwp=… 可用,单位为毫秒ms。
当 suspend = y 时,该值表示等待连接的超时;当 suspend = n 时,该值表示连接后的使用超时。

三,参考实例

  • -agentlib:jdwp=transport=dt_socket,server=y,address=8000
    以 Socket 方式监听 8000 端口,程序启动阻塞(suspend的默认值为y)直到被连接。

  • agentlib:jdwp=transport=dt_socket,server=y,address=localhost:8000,timeout=5000
    以 Socket 方式监听 8000 端口,当程序启动后5秒无调试者连接的话终止,程序启动阻塞(suspend的默认值为y)直到被连接。

  • -agentlib:jdwp=transport=dt_shmem,server=y,suspend=n
    选择可用的共享内存连接地址并使用 stdout 打印,程序启动不阻塞。

  • -agentlib:jdwp=transport=dt_socket,address=myhost:8000
    以 socket 方式连接到 myhost:8000上的调试程序,在连接成功前启动阻塞。

  • agentlib:jdwp=transport=dt_socket,server=y,address=8000,onthrow=java.io.IOException,launch=/usr/local/bin/debugstub
    以 Socket 方式监听 8000 端口,程序启动阻塞(suspend的默认值为y)直到被连接。当抛出 IOException 时中断调试,转而执行 usr/local/bin/debugstub程序。

四,IDEA 远程调试

首先在服务器端启动好我们的项目

java -jar -Dserver.port=8092 -Dspring.profiles.active=test -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6001 message-center-0.0.1-SNAPSHOT.jar

在这里插入图片描述
然后在 IDEA 中,点击 Edit Configurations,在弹框中点击 + 号,然后选择 Remote。
在这里插入图片描述
填写服务端的 IP 地址,以及调试端口号。在检查下下方的 Command line arguments for remote JVM 是否和服务端启动是配置的一致。
配置完毕后点击保存即可,因为我配置的 suspend=n,因此服务端程序无需阻塞等待我们的连接。我们点击 IDEA 调试按钮,当我访问某一接口时,能够正常调试。

此博客借鉴他人博客,但是写完找不到大佬博客了,就不放链接了,CSDN博客当个笔记本,避免自己忘记


http://chatgpt.dhexx.cn/article/yZ2j8Skq.shtml

相关文章

idea远程调试

一 业务:服务器与本地环境不一样 二 需求:如果服务器报错,使用本地idea进行远程debug调试 三 解决方案:本地idea远程debug调试 四 具体操作 1 第一步:IDEA打开远程启动的springboot应用程序所对应的本地springboot…

IDEA 开启远程调试

idea 远程调试 背景 在编写代码时, 总会遇到这样或者那样的bug. 有些bug 特别是业务逻辑的bug . 在生产或测试环境好复现而在开发环境很难复现. 现在提供的一种思路, 就是远程调试: 我们可以在本地直接调试生产环境或者测试环境的代码. 只需我们本地代码和远程部署的代码一致.…

Idea远程debug

Idea远程调试 当把一个本地项目部署到远程服务器后有可能出现意想不到错误,这个时候通过远程调试能够更清楚的找到bug所在位置。本篇主要讲解如何使用Idea开发工具 进行调试1.远程调试服务器上面的SpringBoot 项目2.远程调试服务器上运行在tomcat中的项目&#xff0…

Intellij IDEA远程debug教程实战和要点总结

远程调试,特别是当你在本地开发的时候,你需要调试服务器上的程序时,远程调试就显得非常有用。 JAVA 支持调试功能,本身提供了一个简单的调试工具JDB,支持设置断点及线程级的调试同时,不同的JVM通过接口的协…

计算机网络——网络工程项目

一、项目要求 1. 假设某单位(学校、企业均可)在不同地理位置具有两个内部网络。这两个内部网络规模不同(分别简称主网、次网)。主网至少覆盖4座楼,每座楼至少4层,每层至少10个房间,次网规模不限…

计算机系统要素-从零开始构建现代计算机 项目代码

《计算机系统要素-从零开始构建现代计算机》是一本好书,这阵子花业余时间学习,并跟着做了章节后面的项目,收获很大。已经完成了前面9章的项目内容,目前正在进行第10章,编译器的编写。 前面9章的项目,以Nand…

2022 年面向初学者的15 个计算机视觉项目创意案例

计算机视觉是人工智能领域最热门的话题之一。 但试图找出学习和掌握该领域的最佳方法很容易混淆。 我们的建议? 不要陷入分析理论概念的困境。 相反,将您的概念知识与实践经验相结合,开始构建您自己的计算机视觉模型! 在本文…

Java项目实战:计算机毕业设计案例分享(Java毕设)

【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、…

计算机在段前加项目符号,word中给段落添加项目符号的方法

在不同的杂志和报纸上有时我们会看到下图这样的效果,那么它是如何设置出来的呢,这个我们称为是项目符号,只在每个段落的开始处显示,那么下面小编就教你怎么在word中给段落添加项目符号。 word中给段落添加项目符号的方法 1.加基本…

用计算机视觉可以做什么项目,程序员必看:13个GitHub开源又炫酷的计算机视觉项目...

在这篇文章中,我们列出了一些令人敬畏的计算机视觉GitHub库,希望这些库能激励所有的AI开发者们像这样去构建自己的项目。 计算机视觉GitHub知识库 1、使用CNN进行三维人脸重建(★–4.1k) 这个GitHub存储库有一个项目,其中卷积神经网络用于使用2D图像重建3D人脸模型。这是一个…

计算机视觉项目-文档扫描OCR识别

😊😊😊欢迎来到本博客😊😊😊 本次博客内容将继续讲解关于OpenCV的相关知识 🎉作者简介:⭐️⭐️⭐️目前计算机研究生在读。主要研究方向是人工智能和群智能算法方向。目前熟悉pytho…

计算机视觉项目-人脸识别与检测

😊😊😊欢迎来到本博客😊😊😊 本次博客内容将继续讲解关于OpenCV的相关知识 🎉作者简介:⭐️⭐️⭐️目前计算机研究生在读。主要研究方向是人工智能和群智能算法方向。目前熟悉深度学…

计算机专业学生如何做项目,计算机专业学生如何申请科研项目?

下面从三个方面来进行解答: 1、比起去哪做,更看重做了什么 作为面试官,最近收到很多本科生的简历,都是写满了各种经历。虽然每个项目都只有2-3个月,感觉CV, speech, NLP啥都做了一遍。 遇到这种情况我一般反而会特别关注你具体的角色,你要对每个你写上简历的项目和经历负…

大创项目计算机科学与技术,计算机系4个项目入选2020大创第二批

原标题:计算机系4个项目入选2020大创第二批 2020大创第二批立项结果 清华大学 “大学生创新创业训练计划”(简称 “大创”)项目是一项强化创新创业能力训练,增强高校学生的创新能力和在创新基础上的创业能力,培养适应创新型国家建设需要的高水平创新人才的计划。 计算机系一…

计算机毕业设计项目大全

文章目录 0 前言1 java web 管理系统 毕设选题2 java web 平台/业务系统 毕设选题3 游戏设计、动画设计类 毕设选题 (适合数媒的同学)4 算法开发5 数据挖掘 毕设选题6 大数据处理、云计算、区块链 毕设选题7 网络安全 毕设选题8 通信类/网络工程 毕设选题9 嵌入式 毕设选题10 开…

计算机专业如何自己增加项目经验?

来源知乎精选话题,已获得作者授权,详情见阅读全文 现状: 最近在找软件开发的实习工作,分别参加了华为,CVTE等面试,在面试过程中,没有项目经验,立马就被面试官表示 没有任何说服力 的…

计算机相关项目

基于PythonWeb志愿填报推荐系统 基于文本挖掘的新闻推荐系统 基于nlp(自然语言处理)的商品评价情感分析系统 基于Python的《三国演义》文本可视化(人物等) 基于Python爬虫的图书系统及可视化实现 空气质量数据可视化与分析系…

112个计算机毕业设计项目,适用于所有JAVA计算机专业毕业生,不走弯路

对于即将开始毕业设计的计算机专业学生,选题和完成项目的压力可能让你感到困扰。今天,我们将为大四的学生分享一些毕业设计项目,希望能为你的毕业设计提供一些灵感。 一、成品列表 以下所有springboot框架项目的源码博主已经打包好上传到百d…

40套计算机毕业设计项目合集【含源码+论文】

前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的java web缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的java web管理系统达不到老师的要求。 为了大家能够顺利以及最少的精…

Android安卓反编译apk源代码,移动应用开发课程

https://blog.csdn.net/qq15577969/article/details/79515621 二、解压apk文件 举例我的apk文件是demo.apk,直接右键解压(也可以把后缀名apk改成zip再解压) 三、dex转换成jar 解压好的文件目录里有个classes.dex,这个classes.de…