SpringBoot项目开启远程调试

news2025/1/23 3:26:49

1、服务端设置

 cat start.sh
#!/bin/bash

echo "i will start the program!"

java -jar  -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9999  xxxxx-SNAPSHOT.jar  --server.port=10991

echo "start success"
 

2、开发工具设置

3、然后,确保本地代码和远程部署代码一致,选择刚才远程保存的民初,点击 debug然后本地加断点,远程访问服务端,这样服务端就通过socket调用到本地端,然后可以进行debug调试

 原理:

Java远程调试的原理是两个VM之间通过debug协议进行通信,然后以达到远程调试的目的,两者之间可以通过socket进行通信;

客户端(idea 、eclipse 等)之所以可以进行调试,是由于客户端 和 服务端(程序端)进行了 socket 通信,通信过程如下:
1、先建立起了 socket 连接
2、将断点位置创建了断点事件通过 JDI 接口传给了 服务端(程序端)的 VM,VM 调用 suspend 将 VM 挂起
3、VM 挂起之后将客户端需要获取的 VM 信息返回给客户端,返回之后 VM resume 恢复其运行状态
4、客户端获取到 VM 返回的信息之后可以通过不同的方式展示给客户;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/105433.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络~计算机网络体系结构

一、计算机网络的概念和功能 1. 计算机网络 是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统计算机网络是互联的、自治的计算机集合 互联:通过通信链路互联互通自治&a…

π120M30 双通道数字隔离器兼容ADuM3210TRZ 广泛应用于工业自动化系统方案

π120M30 双通道数字隔离器兼容ADuM3210TRZ 广泛应用于工业自动化系统方案 。具有出色的性能特征和可靠性,整体性能优于光耦和基于其他原理的数字隔离器产品。传输通道间彼此独立,可实现多种传输方向的配置,可实现 3.0kV rms 隔离耐压等级和 …

【Java语言】— 类型转换

1.类型转换 (1)自动类型转换 类型范围小的变量,可以直接赋值给类型范围大的变量。 ①自动类型转换的底层原理 ②自动类型转换的其他形式 (2)表达式的自动类型转换 在表达式中,小范围类型的变量会自动转…

python之序列反转

python之序列反转 方式1:.reverse() a [1, 2, 3, 4, 5] print(a.reverse()) # None,函数原地反转,不具备排序功能,而且没有返回值 print(a) # [5, 4, 3, 2, 1]方式2:reversed a [1, 2, 3, 4, 5] print(reversed…

2021年全国职业院校技能大赛网络搭建与应用赛项——国赛组播题

2021年全国职业院校技能大赛网络搭建与应用赛项——国赛组播题 sw1:# ip pim multicast-routing (开启组播模式,在全局模式) int vlan 10 ip pim dense-mode (在接口模式下开启组播-密集模式协议) ip igmp version 2 i…

正大国际期货:恒指德指交易导致亏损的原因是什么?

在交易过程中,经常会遇到我们事先对这次的交易进行了详细的分析推理,还制定了周密可行的策略,但真正落实到交易活动过程中却变得面目全非,屡屡败退,让我们措手不及这样的现象,是什么原因导致?正…

如何开通 API 服务并授予项目 API 服务的调用权限

涂鸦 IoT 开发平台开放多种业务 API 服务,全面覆盖全屋智能管理、行业通用设备用户管理、垂直品类开放能力、各类数据服务等业务需求。 本文将为大家介绍如何开通 API 服务并授予项目 API 服务的调用权限。 个人数据隐私声明 开发者调用的部分 云服务 API 会获取用…

链表(2)------数据结构

1)进行反转单链表:节点的值不发生改变,只需要进行修改节点的指向 进行测试的时候要给方法传入一个头结点 输入:1,2,3,4,5; 输出:5,4,3,2,1; 1)我…

从0到1介绍一下开源大数据比对平台dataCompare

1.背景&现状 在大数据领域也已经工作了多年,无论所待过的大公司还是小公司,都会遇到集群升级迁移过程中据搬迁等相关工作,经常会碰到搬迁之后,搬迁的数据是不是能对的上呢?两边数据究竟是不是一致的呢&#xff1f…

javaee之Mybatis4

延迟加载与立即加载的概念 Mybatis中的延迟加载与立即加载 一、一对一实现延迟加载的步骤(多对一,看成一对一) 我们这里是利用account表中的一个方法来做 先来看IAccountDao里面的一个方法 然后再去看持久层IAccountDao.xml 这个方法给我们…

Linux学习-92-SELinux管理

18 SELinux管理 root 用户在 Linux 系统当中就是无所不能的,而且读、写和执行权限对 root 用户完全没有作用。root 用户的存在极大地方便了 Linux 的管理,但是也造成了一定的安全隐患。绝大多数系统的严重错误都是由于 root 用户的误操作引起的&#xff…

开源项目 Spartacus 的 git 分支使用规范

Spartacus 开源项目里存在如下的 git 分支: feature/GH-xxxx 分支用于简单的功能和错误修复epic/epic-name 分支用于大功能的开发release/1.4.0-rc.0 分支用于特定的发布(你可以将它们与维护分支区分开来,因为包含了完整的版本号&#xff09…

压力测试笔记

压测学习 要求:满足100并发500ms性能要求 压测场景 新系统上线支持 在新系统上线前,通过执行性能压测能够对系统的负载能力有较为清晰的认知,从而结合预估的潜在用户数量保障系统上线后的用户体验。技术升级验证 在系统重构过程中&#xf…

Github每日精选(第80期):自动生成命令行python-fire

Python Fire 是一个用于从绝对任何Python对象自动生成命令行界面 (CLI) 的库。 Python Fire 是一种在 Python 中创建 CLI 的简单方法。 [1]Python Fire 是用于开发和调试 Python 代码的有用工具。 [2]Python Fire 有助于探索现有代码或将其他人的代码转换为 CLI。[3]Python Fi…

Co-Scale Conv-Attentional Image Transformers

Co-Scale Conv-Attentional Image Transformers一、引言二、实现方法(一)、Conv-Attention Module三、Co-Scale Conv-Attentional Transformers(一)、Co-Scale串行块(二)、Co-Scale并行块(三&am…

跳频和扩频通信

跳频(FH, Frequency Hopping)是指载波频率在很宽频率范围内按某种序列或图案进行跳变,它能进一步提高系统的抗干扰性能。 跳频技术改善了无线信号的传输质量,可以明显地降低同频干扰和频率选择性衰落,为了避免在同一小区或临近小区中&#xf…

无惧管控放开,分享居家办公、远程办公项目经验

国家已经放开疫情管控,随之而来的,是各地大面积的“小阳人”爆发,很多企业不得不重新启动远程办公机制。 云盒子科技拥有良好的的远程办公经验,产品是包含企业云盘、流程审批、邮件、通讯录、企业公告一体化的在线文档协作平台。…

Ubuntu18.04下调用fastdds实现通信

提纲 1、编写idl 2、fastddsgen生成cpp的源代码文件 3、编译生成可执行文件 4、执行可执行文件完成通讯 1、编写idl 现在我们可以编写一个简单的 IDL: 2、fastddsgen生成cpp的源代码文件 编写好idl后,就可以通过 fastddsgen 快速生成代码。 最终会自动…

【Vsan数据恢复】Vsan分布式文件系统数据丢失的数据恢复

vSAN存储数据恢复环境: 某公司一台vSAN分布式文件系统存储设备; VSAN存储采用了超融合架构,存储内总共有24块硬盘。 vSAN存储故障&初检: 由于未知原因关机重启,逻辑架构出现严重故障,上层虚拟机瘫痪&am…

新冠确诊阳性后的第一篇博客,一文带你学习SQL注入

新冠确诊阳性后的第一篇博客,一文带你学习SQL注入1.你好SQL注入2.盲注3.Timing Attack4.常见的攻击技巧5.SQL CoIumn Truncation6.防御SQL注入SQL注入防御的误区使用预编译语句使用存储过程SQL注入攻击属于注入攻击的一种,注入攻击的本质,是把…