Springboot程序开启远程DEBUG


一、远程debug的原理


Spring Boot程序远程debug的原理主要是通过在启动时指定JVM参数来启用远程调试模式,并在调试器中连接到程序所在的调试地址,从而实现对程序的远程调试。

具体步骤如下:

  1. 在运行Spring Boot程序时,在启动命令的JVM参数中指定远程调试的相关配置,比如指定调试端口和允许远程连接等参数,例如:-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7005
  2. 启动Spring Boot程序后,程序会监听指定的调试端口,并等待调试器连接。
  3. 在调试器中创建一个远程调试配置,配置连接到程序所在的服务器和指定的调试端口。
  4. 连接成功后,调试器就可以通过远程连接对程序进行调试,包括设置断点、查看变量值等操作。

Tips: 需要注意的是,为了避免远程调试带来的安全风险,建议在生产环境中禁用远程调试功能。


二、Springboot程序开启远程Debug


  1. 应用配置(Application Config)中选择编辑配置(Edit Configuration)
    在这里插入图片描述

  2. 然后选择添加新配置(Add New Configuration)
    在这里插入图片描述

  3. 在展开的列表中选择远程 JVM 调试(Remote JVM Debug),点击确定
    在这里插入图片描述


  1. 根据图中示例配置。名称可以随意起;主机地址即远程的公网IP地址;端口是指的远程Debug监听端口,而非该项目的服务端口;JDK选择项目开发对应的JDK版本号;远程JVM的命令行参数在配置完成以后拷贝下来;模块类路径即选择主程序包路径。
    在这里插入图片描述

  2. 利用Maven将项目打包 mvn clean package,放到远程主机上,携带刚刚拷贝的启动参数启动项目,例如:

    java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7005 -jar ******.jar
    

  1. 启动本地调试,监听远程端口
    在这里插入图片描述
    当控制台打印“已连接到目标”,说明本地项目已经开始监听远程端口,此时可以开始远程Debug了
    在这里插入图片描述

  1. 在本地代码打上断点,使用postman访问远程接口
    在这里插入图片描述
    在这里插入图片描述

  1. 观察到Debug信息进入到本地,说明配置成功了。
    在这里插入图片描述

三、注意事项

  • 在生产环境中不建议开启远程debug: 开启远程debug会增加程序的额外开销,包括网络开销和调试信息的生成,还会造成接口阻塞。
  • 调试信息的保护: 调试信息中可能包含敏感信息,如密码、私钥等,需要仔细过滤或禁止传递这些信息。特别是在使用公共网络时,要注意调试信息的保护和加密。
  • 调试客户端和服务端的一致性: 调试客户端和服务端必须保持一致,包括调试器的版本、JDK的版本和框架的版本等。否则可能会导致不可预期的问题。
  • 调试范围的限制: 开启远程debug时,要明确授权访问权,限制调试的范围,避免潜在的安全风险。
  • 资源占用问题: 调试信息的生成和传输可能会占用大量的资源,包括CPU和内存等,如果不加注意可能会影响程序的正常运行

综上所述,使用远程debug需要慎重考虑,仅在必要时才应该使用,并且要严格控制权限和范围,避免潜在的安全风险。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遥夜人间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值