背景
前段时间程序部署到生产环境后出现了一些不可预见的问题,只会输出日志再分析的我苦不堪言,偶然发现 idea 可以直接对程序进行远程调试,实在方便的很。
不过远程调试对网络的要求比较高,如果网络不是十分流畅,调试时的卡顿也会比较麻烦。
参考文章:https://www.cnblogs.com/krockey/p/5056945.html
启动脚本配置
想要让程序支持远程调试功能,只需要在启动时加上特定的 JVM 参数,根据 JDK 版本的不同,有如下几种脚本:
- >1.4.x
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=4001
- =1.4.x
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4001
- <1.4.x
-Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4001
最后的 4001
就是远程调试端口,可以任意修改。如果生产环境是云服务器,还要放行防火墙和安全组。
IDEA 配置
idea 配置非常简单,按下图步骤操作:
全部修改完成后,点击“OK”
开始远程调试
点击图中的 debug ,当 console 窗口中打印出 Connected to the target VM, address: 127.0.0.1:4001', transport: 'socket'
代表连接成功,这时候在代码里加上断点,再对生产环境的程序发起请求,就会自动执行到断点处了。
需要注意,远程调试的是生产环境的代码,即便修改了本地代码,调试时也不会执行,所以要保证生产环境的代码与本地一致。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于