序言:很多开发应该都经历过,当生产环境出现bug,但是在本地甚至测试环境不能复现的时候,可能只能通过【打印日志—>发版—>分析—>再次打印日志。。。】这种方式排查处理bug,效率低而且耗费精力,即使你的项目是用jenkins一键部署的也挺烦的。所以,如果能在本地idea上直接debug线上的程序,那是不是就快很多了呢O(∩_∩)O哈哈~
***基本的操作步骤:
连接远程服务器 ---> 进入Tomcat目录 ---> 添加远程debug配置 ---> 打开idea,配置连接远程debug信息*
一.通过编辑catalina.sh文件,配置Debug远程调试
首先,进入Tomcat目录
1.进入Tomcat的bin目录下,编辑catalina.sh文件
vim catalina.sh
2.在第一行添加远程debug配置,如下
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
配置解析:
-Xdebug 通知JVM工作在DEBUG模式下;
-Xrunjdwp 通知JVM使用(Java debug wire protocol)运行调试环境,该参数同时包含了一系列的调试选项;
transport 指定了调试数据的传送方式,dt_socket是指用SOCKET模式
address 调试服务器的端口号,客户端用来连接服务器的端口号;端口号可以自定义,只要不被占用就好。
server=y/n VM 是否需要作为调试服务器执行;
suspend=y/n 是否在调试客户端建立连接之后启动 VM;
3.保存退出,并执行./start.sh启动Tomcat即可。
二.通过编辑start.sh文件,配置Debug远程调试
1.进入Tomcat的bin目录下,编辑start.sh文件
vim start.sh
2.添加配置信息,如下:
declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
3.保存退出,并执行./start.sh启动Tomcat即可。
对了,博主用的是第二种哦
三.配置Idea,连接远程debug
1.进入Edit Configurations
2.添加远程debug启动信息
把第一步或第二步配置的远程debug端口号,和服务器IP配置上
3.启动服务,然后在代码块里打上断点
4.访问测试环境的项目,会发现进入了断点,至此远程调试配置成功
注意:如果是阿里云服务器,别忘了在安全组添加远程Debug的端口号,O(∩_∩)O哈哈~