使用IDEA本地项目开发和debug没有问题,但是打包部署到其他环境会出现各种问题,有些系统异常会被另一个异常给覆盖,不会记录在日志系统中,远程断点调试可以帮助解决这个问题
在IDEA以debug模式启动程序的时候,会默认起一个监听的socket服务
这个端口的服务会监听到断点的代码的运行状态
在主服务的VM系统参数里面增加配置
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
其中5005
是类似本地debug开的那个端口
1.jar包项目
通过以下配置启动
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar xxx.jar
2.war包项目
在tomcat的catalina.sh
文件中添加
JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
3.使用另一个IDEA
当然都在IDEA上面没必要了,不过IDEA可以添加VM启动参数
添加Remote,配置如图,填上对应的ip和端口
然后以Remote启动连接远程的,这个时候需要注意
1.本地代码和运行的主服务代码需要保持一致
2.连接不上ip和端口可能存在防火墙
在调试服务
的代码上打入断点,运行主服务的话,主服务
就会停在断点位置