idea远程调试服务器代码配置

1,816 阅读2分钟

当我们在本地开发的时候,需要调试服务器上的程序时,远程调试可以方便我们调试线上的代码。

一、远程虚拟机配置

首先被debug程序的虚拟机在启动时要开启debug模式,启动debug监听程序。

只需要拷贝一份我们正常启动的脚本中添加一行参数 如:-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=808,server=y,suspend=n。保存一个debug启动脚本

具体参数的意义:

-XDebug 启用调试;

-Xrunjdwp 加载JDWP的JPDA参考执行实例;

-Xnoagent 禁用默认sun.tools.debug调试器。

-Djava.compiler=NONE 禁止 JIT 编译器的加载。

transport 用于在调试程序和VM使用的进程之间通讯;

dt_socket 套接字传输;

server=y/n VM是否需要作为调试服务器执行;

address=7899 调试服务器监听的端口号;

suspend=y/n 是否在调试客户端建立连接之后启动 VM 。

其中端口号要选择我们服务器对外暴露的端口号,否则会无法连接上:connection timed out。

然后启动我们的debug脚本。远程虚拟机部分配置即完成

二、idea配置

菜单 -> Run -> Edit Configurations

添加remote

然后配置remote。host填写我们要远程调试的服务器地址。port填我们远程调试的端口即address配置的端口。use module classpath选取所调试的项目。注意:本地项目代码应与线上代码保持一致。其他配置默认,点击ok保存

接下来选取我们配置的remote进行debug启动,出现下图提示即连接成功,就可以像本地调试一样调试线上的代码了。

对java远程调试原理感兴趣的可以参考这篇文章Java调试那点事