0


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),点击确定在这里插入图片描述

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

  5. 利用Maven将项目打包 mvn clean package,放到远程主机上,携带刚刚拷贝的启动参数启动项目,例如:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7005 -jar ******.jar

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

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

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

三、注意事项

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

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

标签: spring boot jvm java

本文转载自: https://blog.csdn.net/weixin_42541479/article/details/131246442
版权归原作者 遥夜人间 所有, 如有侵权,请联系我们删除。

“Springboot程序开启远程DEBUG”的评论:

还没有评论