SpringBoot 远程DEBUG调试
我们在测试代码的时候,我们本地代码展示的效果可能和测试环境不一样,明明代码一样,但是效果不一样,代码已经部署到服务器端,因此远程连接服务器端远程调试很重要,实际开发较为常用.
一,调试命令
最为常见的远程调试命令
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博客当个笔记本,避免自己忘记
SpringBoot 远程DEBUG调试相关推荐
- openstack windows下远程debug调试(komodo)
2019独角兽企业重金招聘Python工程师标准>>> 感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如有转载,请保留源作者博客信息. Be ...
- IntelliJ IDEA远程debug调试
IntelliJ IDEA远程debug调试 IntelliJ IDEA远程debug调试 解决痛点: 排查线上bug log日志埋点不准确,告别屡次打包部署cycle 前提: 本地代码必须与远程代码 ...
- IDEA配置远程debug调试
当项目部署到远程服务器上的时候,很多时候会发现在远程服务器上执行的结果与我们在本地的执行结果不一致,因此,为了方便我们部署到远程服务器上和在本地debug调试一直,特需配置远程debug调试. 配置远 ...
- 如何使用idea远程debug调试代码详解
目录 一.idea远程debug原理 二.创建一个springboot工程 三.IDEA远程调试配置 四.服务端开始debug模式 五.idea启动远程调用 六.启动远程调试参数解释 一.idea远程 ...
- idea 远程debug调试
1,远程DEBUG的必要性 由于部署环境的差异性,相信很多朋友都碰到过开发环境正常测试过的功能在测试环境甚至生产环境下出现bug的情况.一般情况下,生产环境可以采取的手段比较单一,即通过日志的方 ...
- 使用 IDEA 远程 Debug 调试
背景 有时候我们需要进行远程的debug,本文研究如何进行远程debug,以及使用 IDEA 远程debug的过程中的细节.看完可以解决你的一些疑惑. 配置 远程debug的服务,以springboo ...
- 使用IDEA远程debug调试(一篇懂所有)
使用IDEA远程调试(一篇懂所有) 背景 有时候我们需要进行远程的debug,本文研究如何进行远程debug,以及使用 IDEA 远程debug的过程中的细节.看完可以解决你的一些疑惑. 配置 远程d ...
- postman测试远程服务器,远程debug调试入门
1.远程DEBUG的必要性 由于部署环境的差异性,相信很多朋友都碰到过开发环境正常测试过的功能在测试环境甚至生产环境下出现bug的情况.一般情况下,生产环境可以采取的手段比较单一,即通过日志的方式获取 ...
- pycharm连接云端服务器后实现远程debug调试
目录 1. 情况说明 2.具体实现措施,举例说明 (1) 准备工作 (2)具体实施 3. debug 调试 1. 情况说明 我的情况是通过pycharm连接云端服务器,然后实现代码的pytorch分布 ...
最新文章
- Microbiome:宏基因组分箱流程MetaWRAP简介
- linux开终端失败,Linux:终端提示符 (prompt) 不如期生效原因
- Python D6 if分支结构
- 前K个高频元素(top k)(TX)
- SAP系统和微信集成的系列教程之五:如何将SAP UI5应用嵌入到微信公众号菜单中
- 绝对路径VS相对路径
- Spring3 RESTful Web服务
- java的JVM与垃圾回收机制
- [转载]用 FFMPEG 合并 MP4 视频
- 【三维路径规划】基于matlab A_star算法机器人栅格地图三维路径规划【含Matlab源码 190期】
- Request模块实战04 ---- 爬取豆瓣电影排行榜
- Python初学(2)—— 基本数据类型
- vue项目无法在IE浏览器中显示
- 分析各渠道广告,建立评分模型以及找到优质渠道的特性
- 洛谷P3387 【模板】缩点 (tarjan算法)
- 一起学java-韩顺平老师
- 北京市中 高英语听说计算机考,北京市教育委员会关于听力及言语障碍考生参加2019年中考英语听说计算机考试有关事项的通知...
- 小数乘分数怎么算过程_小数乘以分数公开课教学设计
- se14 数据库处理
- Fabric v2.0 源码解析——排序节点(Orderer)运行机制