关于Eclipse远程Debug
背景:
1,项目部署在Linux服务器上,本地eclipse进行远程调试
2,项目是jar包运行,使用shell脚本启动
以下是调试步骤:
========================================================
1,-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket, address=8787, server=y, suspend=n
启动命令:java -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket, address=8787, server=y, suspend=n -jar xxx.jar
连接到myhost:8787提供的调试服务
-Xdebug是通知JVM工作在DEBUG模式下,
-Xrunjdwp是通知JVM使用(Java debug wire protocol)来运行调试环境。该参数同时了一系列的调试选项:
transport指定了调试数据的传送方式
dt_socket 是指用SOCKET模式
server=y/n VM 是否需要作为调试服务器执行。
suspend=y/n 是否在调试客户端建立连接之后启动 VM 。
启动服务器上的jar包
========================================================
2,打开eclipse
===========================================注意:联通之后这个地方会出现此类按钮如上图
============================================
需要注意的地方:
1,必须保持服务器上运行的代码和本地的代码保持一致
2,一般我们debug是调试接口的,当一台电脑开启一个eclipse联通服务器上运行的代码以后,这台电脑上再打开任何的eclipse发送请求去请求服务器上代码的接口,都不能进入debug模式
(本人实验如此,运行了2个版本的eclipse也不行)
3,本人的实践的结果是:
a,一台电脑联通服务器开启debug模式,另一台电脑发送请求,可以进入debug模式
b,部署一个前置项目在服务器上,提供页面请求接口,本地eclipse联通服务器,可以进入debug模式
c,此类未经实践,百度另一种方法是用接口测试工具发送请求,本地eclispe联通服务器
最后,debug模式下,本地的eclipse代码记得打断点。