idea远程调试debug
配置远程调试参数
在远程主机启动脚本加上生成的参数,启动
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5555
启动命令
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5555 -jar xxx.jar --spring.profiles.active=test
开启远程调试
下图代表可以开始调试,没有的话可能就是没有连上
因为我的断点打在验证码的这一块,只需要调用该方法
如果是远程服务器开启防火墙并未配置规则会导致连接失败
sudo vim /etc/sysconfig/iptables #打开防火墙规则文件
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5005 -j ACCEPT #配置防火墙规则
sudo systemctl restart iptables # 重启生效
关闭调试
- 服务器上多开放个端口是不安全的,调试完毕后可恢复防火墙设置。
- 而 Java 服务器开启 Debug 服务器的功能可以保留,以便之后再次调试。
总结
远程调试的用处也不是那么大,不能作为长期使用的调试工具。只能作为临时调试的手段。
难点有几个:
1、难保证本地代码和远程一致,而且也很难判断是否一致
2、通过远程调试发现了bug,但又不能立即修复后继续调试,只能修复后部署后继续远程调试