在 IDEA 中优雅的远程调试


在应用服务完成部署之后,对于所有人而言其内部执行都是黑盒,当出现异常时如何快速定位异常也成为了重中之重。在本地开发时,作为开发人员可以通过程序断点调试轻易的发现问题根源,可一旦服务发布到线上环境时,更多的情况只能通过日志跟踪的方式排查问题。

幸运的是,在 IDEA 中提供了远程调试的功能,可以实现线上服务断点调试,本文将介绍如何进行配置。

1. 服务配置

IDEA 中启动配置中新增 Remote JVM Debug 并填写对应对应的服务 IP 与端口。

2. 启动参数

在上一步的配置之后可以看到生成了如下一串 JVM 参数:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005

上述配置参数我们只需关心 address=*:5005,其中 5005 表示远程调试连接端口。

有了上述配置信息,接下来只需要在服务启动命令上添加即可,示例如下:

nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -jar my-application.jar> application-info.log 2>&1 &

3. 断点调试

完成上述步骤后启动线上服务与 IDEA 中的服务即可,此时线上服务请求将会被转发到本地工程断点中。

需要注意的一点是本地工程代码需要和线上服务的代码保持一致,否则可能会出现断点行数不匹配的问题。


文章作者: 烽火戏诸诸诸侯
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 烽火戏诸诸诸侯 !
  目录