使用Eclipse远程调试Linux服务器Tomcat项目
工作这些年,经常会出现这样的情况,程序运行在本机是正常的,但是放到服务器上就出现各种bug,且服务器通用都是linux服务器,不方便调试,很难排查问题,这时候就需要
用到Eclipse的远程调试功能。说来惭愧,博主也是最近才知道这个功能,因此整理出这个帖子,以供大家分享。
何谓远程调试,就是我们把打包后的代码部署到服务器上之后,使用本地开发环境连接到服务器部署环境,以这样的方式调试。下面说一下方法吧:
环境:Eclipse、Linux服务器下tomcat环境,做远程调试并不需要其他特殊插件
1、配置Linux服务器下Tomcat/bin/catalina.sh
在第一行增加代码:CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899"
其中8899即为我们远程调试的端口,后面会用到。另外,该命令不可手工换行(博客显示的时候可能会被换行,实际配置的时候请注意)。
参数说明:
-Xdebug : 启用调试模式
-Xrunjdwp<sub-options> :加载JVM的JPDA参考实现库
transport=dt_socket :Socket连接,可选dt_shmem 通过共享内存的方式连接到调试服务器
address=8000 :调试服务器监听的端口
server=y : 是否是服务器端,n为客户端
suspend=n : 启动过程是否加载暂停,y为启动时暂停,方便调试启动过程
(
Window中修改 catalina.bat文件,添加:
Set "CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8899,server=y,suspend=n"
)
2、启动tomcat,查看tomcat是否启动成功
如果启动成功,tomcat日志文件(catalina.out)中会有如下输出:Command line argument: -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899
3、配置Eclipse
点击Eclipse上面的debug图标,选择Debug Configurations,打开窗口找到Remote Java Application,如下图:
创建一个远程调试,按下图配置,然后点击“Debug”
4、验证
我们打开源码项目中的任意需要调试的代码,像普通本地debug一样设置断点,然后对服务器部署的项目发起请求。如下图所示,则表示已经成功。
点击上面圈起来的图标(Disconnect)即可断开Debug模式。
断开Debug模式后,可以随时再开启Debug模式,如以下操作:
5、注意事项
远程debug要保证本地代码和服务器代码一直,否则调试结果不一致端口号必须是可以访问的端口
更多推荐
所有评论(0)