注意:远程调试不要应用在正式环境中,即便是测试环境也只建议在开发网段使用
在实际的开发过程中,为了验证测试环境的一些问题,且问题在本地不可复现,可以使用远程debug的形式来进行问题定位,而不用循环进行加日志->定位问题这个过程
Idea添加远程debug配置
- Configuration添加Remote JVM Debug
- 配置remote debug
按照网上的配置方式,将host改为远程服务器的地址,jdk版本可以切换,我线上用的1.17,因此选择JDK 9 or later
复制生成的命令,在启动项目时添加
- 服务器上启动项目
nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -jar demo-0.0.1-SNAPSHOT.jar &
idea远程debug测试
- idea启动报如下错误
需调整Remote JVM Debug的host
然后打开Windows PowerShell,输入以下命令
ssh -L 0.0.0.0:5005:服务器ip:5005 root@服务器ip
可以正常连接
- 访问远程地址,可以正常进入本地断点
由于是测试环境,可能有多个开发人员都在使用,因此建议断点调整为Thread,虽然其他人走断点逻辑还是会被阻塞,但是不走该断点的还是可以正常运行的