一、背景
日常项目中,通常我们的代码都是部署到远程的服务器,有时线上出现了问题,经常需要我们增加一些日志来排查问题,但是如果是测试环境的场景下或者我们能进行远程调试的话,我们就可以使用远程的Debug方式进行远程调试,不用频繁的修改代码部署到远程服务器上。这时就需要我们的服务需要开启远程Debug了。
二、相关图示说明
三、具体操作步骤
1、服务端配置
通常debug模式是关闭的,如果没有特地打开的话,通常是通过设置JVM启动参数来实现。你可以使用以下参数来启动Java程序,并开启调试功能:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888(debug监听端口号)
进行java -jar后面进行启动,代表我们的服务端开启的debug模式,并监听了8888的端口。
备注:
suspend 参数如果设置为 y,则表示在调试客户端连接之前,JVM 会暂停执行;如果设置为 n,则表示即使没有调试客户端连接,JVM也会继续执行。
2、客户端配置
如果你想在本地机器上的8000端口监听调试请求,可以这样启动Java程序:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888(远程的Debug服务端口)
在IDEA的应用下可以用这个方式进行设置:
添加一个远程debug, 然后配置好对应的服务端的端口:
然后选择对应服务器的代码,使用debug的模式进行启动,这样本地就能连上远程的服务开始debug了。
后面的操作就跟本地debug一样,选择需要断点的代码,进行断点操作即可。
至此Java服务开启Debug的远程调试就介绍完了,感谢大家观看。