前言
当咱们的代码在线上/测试环境运行出现异常须要进行问题定位时,之前的传统做法是:查看异样日志,依据日志定位到出错代码,而后再依据相干参数及异样信息进行推断。然而很多异样问题须要更粗疏的进行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;