一、前言
线上代码出了问题,总是要在本地复现,然后debug,这个过程是在是不太友好,而且线上的很多数据本地没有,经常耽误好久的时间来同步数据.
当然有解决方案,这就是远程调试(Remote debugging)。远程调试使开发人员能够直接诊断服务器或其它线上进程上的问题,它提供了跟踪线上运行时错误并确定性能瓶颈和问题根源的方法,让你能够像在本地调试一样 Debug 远程服务器
二、开启远程Debug服务
1)对于jar包项目
命令行添加启动项,如下:
注意新参数必须在 -jar 之前
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar test.jar
参数说明:
-
dt_socket:使用的通信方式
-
transport:监听Socket端口连接方式,常用的dt_socket表示使用socket连接.
-
server:=y表示当前是调试服务端,=n表示当前是调试客户端;
-
suspend:=n表示启动时不中断.
-
address:=5005表示本地监听5005端口。
2)对于war包项目
启动脚本(catalina.sh)添加如下信息:
sudo vim $CATALINA_HOME/bin/catalina.sh
JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
评论区