關於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程式碼記得打斷點。