当前位置:网站首页>IDEA如何进行远程Debug
IDEA如何进行远程Debug
2022-08-02 14:16:00 【蒲春伟】
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配置
- 为了方便调试,首先需要把远程服务器上面需要调试的代码放在本地IDE里面
- 在菜单栏选择Run ->Edit Configuration,点击+号,选择Remote JVM Debug,然后在配置项里面输入远程需要调试机器的IP地址和所对应的端口号,最后可以自定义应用名称


- 再次选择菜单条run按钮,找到debug中“自己设置的项目名字”,点击然后就可以进行远程连接开启Debug调试了
- 在本地项目中代码中设置断点,然后就可以在本地debug调试了
4. 总结
无论Remote Debug还是本地IDEA Debug模式其本质就是通过在启用应用时添加参数,底层原理均是基于JVM底层提供的调试能力,然后通过启动参数来确定是否开启Debug端口,唯一的区别是在于IDEA是在集成开发软件中自动来完成调试模式的开启,而自己开启则需要在应用中添加对应的参数来控制Debug功能的开启。 除此之外断点调试的功能也是基于JVM底层已有的能力,只不过是IDEA提供了可视化的工具然开发能够更便捷的Debug。如果不用IDEA或其他开发工具的情况下我们又该如何进行Debug呢? 其实也是可以的,只需要基于JDB本身通过命令行来打断点和调试即可,感兴趣的可以进一步了解下如何通过命令行基于JDB模式来进行Debug调试。为什么需要具备这种能力呢? 因为大企业内部的线上的服务器的网络和办公网络是隔离的,中间经过一层跳板机,直接远程调试是不通的(除非是通过跳板机做端口映射转发),这时候便可以直接在机器上基于JDB来进行调试。
边栏推荐
猜你喜欢
随机推荐
【软件测试】selenium自动化测试1
smart rtmpd web 接口说明
大厂年薪50w+招聘具有测试平台开发能力的测试工程师
项目管理模块-项目权限功能开发
三大特殊类(String Object 包装类)与异常
Oauth2.0 security (take WeChat authorized login as an example)
RTMP, RTSP, SRT 推流和拉流那些事
Mysql删库恢复数据
Mysql理解MVCC与BufferPool缓存机制
OpenPose Basic Philosophy
LAMP 环境搭建 yum源安装方式 (Apache 2.4.6 +mysql 8.0.28+php 8.1.3)
CDN的加速原理是什么?
【线程】线程创建 | 理解线程并发 (1)
win10无法识别蓝牙麦克风
Oauth2.0 authentication server construction
The dynamic planning theory
打包项目上传到PyPI
Oauth2.0 补充
Vert.x web 接收请求时反序列化对象 Failed to decode 如何解决?
hybrid 实现同网段但不同vlan之间通讯









