1. 问题背景

项目的部署方式有主要有两种,第一种是以本地SpringBoot直接启动或是非SpringBoot的应用在本地应用服务器进行部署;第二种则是将项目在远程服务器部署。一般本地直接启动的项目可以直接进行DEBUG调试,但是在企业内部或是多人协同的时一般是将项目部署在独立的一台测试服务器上,针对这种情况该如何DEBUG调试的我们的业务代码呢,下面是具体的操作流程。

2. 远程调试端口开启

应用或是系统在远程服务器上一般是通过命令行或是Shell脚本完成应用的启动/关闭,关于启动的参数配置一般是附属在Shell脚本或是JAVA启动命令中来进行配置,比如JVM内存大小java -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=512m,除此之外我们还可以指定调试相关的配置参数:

将配置项中的-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 添加到JAVA启用参数中,然后重启远程服务器

3. Remote Debug配置

  1. 为了方便调试,首先需要把远程服务器上面需要调试的代码放在本地IDE里面
  2. 在菜单栏选择Run ->Edit Configuration,点击+号,选择Remote JVM Debug,然后在配置项里面输入远程需要调试机器的IP地址和所对应的端口号,最后可以自定义应用名称
  3. 再次选择菜单条run按钮,找到debug中“自己设置的项目名字”,点击然后就可以进行远程连接开启Debug调试了
  4. 在本地项目中代码中设置断点,然后就可以在本地debug调试了

4. 总结

无论Remote Debug还是本地IDEA Debug模式其本质就是通过在启用应用时添加参数,底层原理均是基于JVM底层提供的调试能力,然后通过启动参数来确定是否开启Debug端口,唯一的区别是在于IDEA是在集成开发软件中自动来完成调试模式的开启,而自己开启则需要在应用中添加对应的参数来控制Debug功能的开启。 除此之外断点调试的功能也是基于JVM底层已有的能力,只不过是IDEA提供了可视化的工具然开发能够更便捷的Debug。如果不用IDEA或其他开发工具的情况下我们又该如何进行Debug呢? 其实也是可以的,只需要基于JDB本身通过命令行来打断点和调试即可,感兴趣的可以进一步了解下如何通过命令行基于JDB模式来进行Debug调试。为什么需要具备这种能力呢? 因为大企业内部的线上的服务器的网络和办公网络是隔离的,中间经过一层跳板机,直接远程调试是不通的(除非是通过跳板机做端口映射转发),这时候便可以直接在机器上基于JDB来进行调试。

IDEA如何进行远程Debug相关推荐

  1. 设置tomcat远程debug

    查看端口占用情况命令: netstat -tunlp |grep 8000 tomcat 启动远程debug: startup.sh 中的最后一行 exec "$PRGDIR"/& ...

  2. 如何使用idea远程debug调试代码详解

    目录 一.idea远程debug原理 二.创建一个springboot工程 三.IDEA远程调试配置 四.服务端开始debug模式 五.idea启动远程调用 六.启动远程调试参数解释 一.idea远程 ...

  3. 给Tomcat打开远程debug端口

    >cd apache-tomcat-8.5.24 >cd conf >vim catalina.sh 在文件开始处添加: CATALINA_OPTS="-server -X ...

  4. java远程debug

    常常会遇到在应用部署在weblogic,tomcat,jetty等服务器下,而我们的代码却在本地,如何用本地的代码调试远程服务器上的程序呢 在web服务器上添加jvm参数,如以下是我们启动jetty服 ...

  5. IDEA对tomcat远程debug

    一.场景: 1.实际项目开发中,为了方便定位问题,需要远程debug逐步调试代码. 二.远程debug原理: 1.实际是两个JVM进行远程通信,通讯的方式通过socket方式. 2.socket方式两 ...

  6. tomcat远程调试_docker容器远程debug(Tomcat)

    前言 在部署tomcat项目时,项目部署好一会出现问题,我们只能通过日志的方式查看错误信息,很难找到真正错误的地方.docker对这个问题做了解决,通过docker部署tomcat项目,随后添加命令开 ...

  7. openstack windows下远程debug调试(komodo)

    2019独角兽企业重金招聘Python工程师标准>>> 感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如有转载,请保留源作者博客信息. Be ...

  8. 保命小诀窍:IDEA远程Debug技巧,你了解吗?

    前言 昨天看到一个问题,"疫情结束后你最想吃什么?" 仔细想了一下,火锅?烤肉? 看了一下体重秤,怕是只能报个健身房了. 你以为你胖N斤的时间复杂度是O(2^N), 事实上它是O( ...

  9. idea 远程debug调试

    1,远程DEBUG的必要性    由于部署环境的差异性,相信很多朋友都碰到过开发环境正常测试过的功能在测试环境甚至生产环境下出现bug的情况.一般情况下,生产环境可以采取的手段比较单一,即通过日志的方 ...

  10. idea远程Debug,远程调试

    如果需要进行测试直接跳到第三步进行设置就可以 idea远程Debug,远程调试 一.为什么使用远程Debug 二.搭建项目 1.项目配置 2.打包项目 三.Debug测试 1.创建链接 2.启动项目 ...

最新文章

  1. adb mac电脑 pull_有史以来最贵的苹果Mac笔记本,PowerBook 5300ce(1995)体验
  2. Android 哥哥福利
  3. 公司CRM的三个阶段
  4. UI第九节——UIProgressView
  5. 2016没有自带公式编辑器_如何在Visio中插入数学公式
  6. android悬浮窗代码布局,三行代码实现Android应用内悬浮窗,无需一切权限,适配所有ROM和厂商...
  7. Java commit()_Java XAResource.commit方法代码示例
  8. golang mysql断线_MySQL的连接池、异步、断线重连-Go语言中文社区
  9. java菜单栏支持多种语言,多语工具包multilanguage(java版)
  10. 共迎海量数据库管理挑战 中韩数据库专家对话北京
  11. plc原理及应用_一年只一次,百篇电工+PLC技术资料大合集,不看真的亏!
  12. 8uftp怎么上传文件,8uftp怎么上传文件
  13. Liunx树莓派(ARM)开发篇—第六章、树莓派wiringPi库外设开发
  14. Base64解密转图片
  15. flex的常用用法二十条
  16. Drill系列(1):Dremel的原理
  17. php bcd编码,什么是BCD码、8421码、余三码、格雷码
  18. Java程序员如何能进入阿里、大众点评这样的大型互联网公司?
  19. python学习记录 day1
  20. dotnetfx35.exe

热门文章

  1. 顺舟智能获中国电信智慧家庭产业联盟“智慧家庭创新合作奖”
  2. Unreal 后期处理材质范例
  3. sql查询每科成绩的最高分_编写SQL语句查询出每个各科班分数最高的同学的名字,班级名称,课程名称,分数...
  4. (二)安全计算-Threat Modelling威胁建模
  5. 什么是基本表?什么是视图?两者的联系和区别是什么?视图有哪些优点?
  6. 多个python版本pip对应问题
  7. 计算机行业应该考哪些证书?
  8. macromedia dreamweaber 8 激活码
  9. 如何多个进程监听同一个端口
  10. mes系统是什么?mes系统的主要功能有哪些?