当把一个工程部署到远程服务器后有可能出现意想不到错误,日志打印过多或者过少都影响问题排查的效率,这个时候可以通过远程调试的方式快速定位bug,提升工作效率。本文主要讲解如何使用Idea开发工具进行远程调试,希望对你有帮助。
一、环境配置
1. 远程Tomcat配置
远程Tomcat添加启动参数并重启生效:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
2. IDEA配置
3. 启动调试
正常debug启动,控制台看到如下字样即为连接成功,可以打断点进行调试了。
二、常见问题
1. 为什么调试断点没生效?
本地和远程代码要相同,不一样则会出现无法进入断点的情况;
如果代码一致还是无法进入,尝试重启,一般可以解决;
2. 进入断点调试之后,服务器还可以处理其他请求吗?
服务器在断点处停住了,无法处理其他请求;
3.改了本地代码可以直接debug吗?
不可以,需要部署在远程服务器之后再次启动debug;
三、远程DEBUG原理
原理:本机和远程主机的两个 VM 之间使用 Debug 协议通过 Socket 通信,传递调试指令和调试信息。
Java动态调试技术原理及实践
JDWP:https://docs.oracle.com/javase/8/docs/technotes/guides/jpda/jdwp-spec.html