Idea远程debug调试
Idea远程debug调试
什么是远程调试
工作中经常会出现测试环境出现bug的情况,但可能本地因为依赖外部第三方的一些接口本地环境无法ping通,导致本地没办法复现测试环境的bug,这时候就需要远程调试了。
远程调试注意事项
本地的代码必须和远程服务器上的字节码是同一个版本,保持一致,否则idea启动远程bug的时候会报错,所以需要提前查看测试环境
当前的分支和代码版本,本地先进行代码分支切换,保持和测试服务器代码的一致性。
通常idea打断点失效常见原因
- 本地与远程代码不一致
- 远程IP,端口配置错误
- 本地源码与二进制代码不一致:实际JVM是基于二进制代码运行的,需要重新编译。(先检查1和2,确认都没有问题,则进行本地代码重现编译后尝试)
使用远程调试时候,打了断点,别的人在测试这个页面的时候是会卡住的。
日志不会打印在IDEA的控制台上。System.out 以及 log.info 还是打印在远程的。
实战演示
idea配置远程调试,name一般自定义,在公司取名对应不同的测试环境。host及你当前需要连接到哪个环境。
上传jar到远程服务器,方便演示,这里用的jar就是上一篇商场项目的商品模块-品牌打成的jar。
1 | scp goods-service-1.0.0-SNAPSHOT.jar root@101.34.5.93:/usr/local |
登录服务器,启动jar包
1 | java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar goods-service-1.0.0-SNAPSHOT.jar |
这个时候,如果启动出现连接拒绝,首先在服务器telnet ip 端口,发现能够telnet的通,检查发现服务器的内存占用基本快满了,
上服务器修改nacos的jvm参数后,继续启动微服务,发现成功启动。注意服务器放开5005端口。
本地启动remote连接后,请求服务器接口。同时idea相应接口打上断点进行测试。
1 | ### 品牌删除操作 |
发现断点已经进入本地idea中。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Chenghao-blog!






