远程debug

远程debug

项目启动设置

未添加远程debug端口的,如果需要开启远程debug的端口,操作如下:
修改远程debug的脚本
cd /data/piaoeda-cloud/
vim 需要修改的启动脚本,例 restart-income-tax.sh
java -Xms512m 在java后,-Xms512m之前添加下面代码
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=12346
注意:address不能与其它服务的端口冲突

添加完成之后,执行重启脚本:
./restart-income-tax.sh 神不知鬼不觉地重启服务!!

执行到这一步你以为就能远程debug了吗?错了,你是连不上的,内网服务器都是有防火墙的,怎么穿过防火墙呢?

防火墙配置

通过修改防火墙配置:
sudo vim /etc/sysconfig/iptables

找到合适的一行,添加如下代码:
-A INPUT -p tcp --dport 12346 -j ACCEPT

12346指的是你想要开通的端口

重启防火墙:
service iptables restart

OK,执行到这一步你就可以在idea中配置remote进行远程debug了

idea配置

idea中的操作:
远程debug

点击Edit Configurations
远程debug

填完之后,就可以debug启动了

在需要打断点的代码中debug,操作81环境的页面,就可以进入到你要debug的代码了!!

问题

如果以上动作都做完之后还是不能debug,怎么办!!

首先确保远程debug的端口不能与服务器上的其它端口冲突:
netstat -anp|grep PORT
查看该端口有几个服务占用,如果有两个,恭喜你找到为什么不能debug的原因了,修改远程debug的端口,修改防火墙的端口,修改idea的端口,可以继续了。
如果只有一个,需要查看一下是否是自己启动的那个项目
ps -ef|grep [pid] (pid是指进程id)
如果是的话,再检查防火墙吧,就这两个地方。。。还是不行的话,那你放弃远程debug吧

注意事项

切记debug完需要关闭远程debug,不要影响测试同学测试。
线上环境不可debug。如需打印方法入参出参,又不能重启代码,可以使用Btrace神器写脚本注入代码。

Btrace具体怎么使用可以自行探索