持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情
我要一步一步往上爬~大家好我是青三阿,今天我们来一起学习一下远程Debug这个概念。
场景:最近遇到了大型项目编译上的一个问题,由于项目采用的是Maven编译,出现了有一些依赖无法下载的情况,因此就不能对项目进行正常的编译了,这个时候Remote Debug就可以大显身手了!
什么是远程Debug?
远程debug是在一台服务器上对远程的另一台服务器上任何java进行debug。
它的实现原理是:Java程序是以字节码的形式统一在JVM中运行的,不同平台上的虚拟机使用的都是相同的程序存储格式,因此本机和远程服务器两个VM就可以使用Debugu协议通过Socket通信,传递的是调试消息和指令。
被调试的程序称为 debuggee,调试的程序被称为debugger
特别注意: 本机上和远程服务器上的代码必须保持版本一致!!不然会造成断点无法进入的问题(表现为打断点时出现一个灰色+斜杠的圈圈)。
远程Debug步骤
- 本机Intellij IDEA配置
-
打开Inteliij IDEA,菜单栏选择Run--Edit Configurations
-
选择左上角 + 号-- Remote选项,只需要填写2个配置项:Host、Port、(想要指定的远程服务器的IP地址和端口),
Use module classpath配置与远程服务器对应的模块代码,点击 OK 即可完成配置。
需要注意:这里的JDK版本需要和远程服务器配置一致
- 远程服务器配置
- 项目配置文件中添加配置:把图片中的
Command line arguments for remote JVM中的配置信息拷贝过来,保存
参数说明:suspend=y/n 表明是否在建立连接之后启动VM,设置为y时是阻塞模式。
-
远程启动服务监听端口,IDEA启动Debug
-
在IDEA下方进行调试
大家有什么疑问欢迎评论区和我交流~