IntelliJ IDEA是目前Java界的主流开发工具。这里介绍如何使用其进行远程调试,来帮助我们快速地定位线上问题
配置
在本地项目中添加一个远程调试配置,按下图红框所示来配置调试模式与通讯模式。远程调试时,本地的JVM与远程服务器的JVM之间会通过Socket进行连接、通讯,其中本地JVM、远程服务器JVM将分别作为Socket通讯的客户端、服务端。故我们需要在红框的Host、Port处填写远程服务器的IP、调试通讯的端口号,以供本地IDEA启动远程调试时连接到指定远程服务器的JVM上
在图中黄框处选择正确的远程JDK的版本,现在绿框部分就是我们在远程服务器启动Jar包时配置远程调试时需要用到的的命令参数
由于使用Spring Boot的缘故,业务服务会被打包为Jar包,这样我们可通过远程服务器的命令行来启动该业务服务。为了让本地IDEA能够远程调试,我们在命令行中启动该Jar包时,还需要在 -jar选项前 添加绿框部分的命令参数
1 | java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar remoteDebugDemo.jar |
远程调试
现在,本地的远程调试环境已经配置完毕,远程服务器上的服务也使能了远程调试功能。我们只需在本地IDEA中选择我们刚刚配置的远程调试然后点击Debug按钮,就可以实现直接在本地IDEA的代码中打断点来调试远程服务器的代码了