当前位置:网站首页>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来进行调试。
边栏推荐
猜你喜欢
随机推荐
深入理解负载均衡
CDH(computational Diffie-Hellman)问题以及与离散对数、DDH问题的区别
代码细节带来的极致体验,ShardingSphere 5.1.0 性能提升密钥
为什么Volatile能保证双重检查锁的线程安全
GC垃圾收集器G1
Apache ShardingSphere 5.1.2 发布|全新驱动 API + 云原生部署,打造高性能数据网关...
面试追问系列-Redis技术原理
OpenPose 命令行说明
net start mysql 服务名无效。
Template series-union set
grub 命令使用
CDN的加速原理是什么?
JVM常量池详解
【Solidity智能合约基础】-- 基础运算与底层位运算
OpenPose Basic Philosophy
Google AdSense注册流程
Three-way joint interface data security issues
消息队列的技术选型
【软件测试】项目中关于测试人员的简单介绍
HCIE学习记录——数通网络基础