前言:
在我们的开发中由于部署环境的差异性,相信很多朋友都碰到过开发环境正常测试过的功能在测试环境甚至生产环境下出现bug的情况。一般情况下,生产环境可以采取的手段比较单一,即通过日志的方式获取运行中的环境上下文,分析日志文件并尝试重现bug。这会带来的问题还是不少的,首先,日志的分析是一项比较耗时的工作;其次,现有的日志记录不一定能反映出问题,你可能需要多次重复这个过程(分析日志->猜测问题->加日志->部署->获取日志)来慢慢逼近问题。倘若是测试环境,我们还多了一项可供选择的手段——远程调试——将程序在测试环境中以debug模式启动,在本机使用IDEA在工程中设置断点进行调试。
今天博主就来讲解一下在java开发中,我们如何去远程debug调试我们的代码查看问题呢?
当前环境:
Linux服务器Rocky9
注意事项:
1.服务器代码和本地代码要保持一致
2.不要在正式环境用这个,因为端口开放后谁都可以连接。安全性问题
3.命令中 address=10005 这个端口号可以随意取,但是不能和你的项目端口号一致, 这个端口号是 和你idea 建立连接的socket端口
4.安全组端口号记得要开放
5.偶发会出现 idea 提示已经连接,或者连接不上,可以重启idea再试一下,基本解决问题。 如果还是不行,请按照错误信息排查
6.需按照顺序来,先启动服务器应用,在启动idea
操作步骤:
1.启动jar包指定远程debug端口号,我这里是后台启动,指定10005端口
nohup java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10005 xxxxx.jar >> xxxxx.log 2>&1 &
2.开放debug端口安全组,内网环境防火墙开放端口
//开放端口10005
sudo firewall-cmd --permanent --add-port=10005/tcp
//reload防火墙
sudo firewall-cmd --reload
3.打开我们的IDEA,打开编辑配置页面。
4.选择远程JVM调试的选项。
5.输入自己要调试的环境IP地址及远程debug端口。
5.启动该调试服务
6.打断点开始debug即可。
大家可以试一下,有问题随时留言。一键三连,谢谢大家。
标签:10005,端口,debug,调试,JVM,Linux,Debug,日志,端口号 From: https://blog.csdn.net/Mi_RenYu/article/details/141220274