前言

当咱们的代码在线上/测试环境运行出现异常须要进行问题定位时,之前的传统做法是:查看异样日志,依据日志定位到出错代码,而后再依据相干参数及异样信息进行推断。然而很多异样问题须要更粗疏的进行debug才可能更精准的去定位和解决,这种状况下,咱们心愿可能像在本地调试一样去debug线上/测试环境的代码,这样能够大大晋升bug修复的效率,IDEA十分贴心的为咱们提供了这一性能,具体用法如下:

配置步骤

近程服务启动参数

应用如下命令启动服务端程序;

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5005 -jar 待发布的程序jar包名称.jar

本地IDEA配置

1.菜单栏抉择 Run | Edit Configurations 或按快捷键 Alt+Shift+F10 而后抉择 “0.”;
2.在 Run/Debug Configurations面板,点击左上角“+”号,而后抉择“Remote”;
3.配置“Remote” 属性:

  • Name:配置Remote Debug的名称,能够是任意名称;
  • Host:配置服务器的域名或ip地址,Port 应用默认值5005,也能够是其余端口;
  • Command line arguments for remote JVM:配置Debug近程服务的命令行启动参数,本地在Debug时会监听近程服务的对应端口并运行调试环境,具体的参数阐明如下:

    • -Xdebug:JVM在DEBUG模式下工作;
    • -Xrunjdwp:JVM应用(java debug wire protocol)来运行调试环境;
    • transport:监听Socket端口连贯形式,罕用的dt_socket示意应用socket连贯;
    • server:=y示意以后是调试服务端,=n示意以后是调试客户端;
    • suspend:=n示意启动时不中断;
    • address:示意本地监听的地址和端口。

而后在本地程序中在须要调试的代码处设置断点,最初再按 Alt+Shift+F9 抉择之前配置的remote debug并点击“Debug”运行;

申请&调试

向服务器的接口发动申请, 能够察看到申请会进入本地程序设置断点处,至此实现IDEA进行Remote Debug;