天天看點

eclipse cdt無法調試_遠端調試Java程式一、概述二、主動連接配接調試1. 說明2. 操作步驟2.2.1 IDEA 設定 remote configuration2.2.2 伺服器啟動jar程式2.2.3 在idea設定斷點并啟動程式三、被動連接配接調試

eclipse cdt無法調試_遠端調試Java程式一、概述二、主動連接配接調試1. 說明2. 操作步驟2.2.1 IDEA 設定 remote configuration2.2.2 伺服器啟動jar程式2.2.3 在idea設定斷點并啟動程式三、被動連接配接調試

一、概述

Java的遠端debug,可以在本地打斷點,調試遠端程式。方法是修改JAVA_OPTS參數,使用Eclipse或IDEA等工具調試。

遠端調試有兩種方式:

  • 主動連接配接調試:服務端配監控端口,IDE連接配接遠端端口。
  • 被動連接配接調試:IDE設定監聽端口,等遠端連接配接本地端口。

注意本地和遠端的代碼要一緻,另外注意打開防火牆需要用到的端口。

二、主動連接配接調試

1. 說明

遠端服務需要使用配置啟動腳本:

JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
           

啟動jar可以使用指令:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -jar test.jar  
           

參數說明:

  • Xdebug :通知JVM工作在DEBUG模式
  • Xrunjdwp:通知JVM使用Java debug wire protocol來運作調試程式
  • transport:連接配接方式使用socket。如果是本機也可以使用共享記憶體
  • server=y:目前調試服務端,值為n表示調試用戶端
  • suspend=n:啟動時不中斷
  • address:監聽的端口

注意jdk 版本不同時,指令會有所差別。

2. 操作步驟

2.2.1 IDEA 設定 remote configuration

eclipse cdt無法調試_遠端調試Java程式一、概述二、主動連接配接調試1. 說明2. 操作步驟2.2.1 IDEA 設定 remote configuration2.2.2 伺服器啟動jar程式2.2.3 在idea設定斷點并啟動程式三、被動連接配接調試

Debugger mode 選擇 Attach to remote JVM,

Transport設定 Socket

Host設定 服務端IP

把下面的Command line arguments for remote JVM複制下來用來啟動伺服器端程式。

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
           

注意根據實際情況,選擇右側的JDK版本。

eclipse cdt無法調試_遠端調試Java程式一、概述二、主動連接配接調試1. 說明2. 操作步驟2.2.1 IDEA 設定 remote configuration2.2.2 伺服器啟動jar程式2.2.3 在idea設定斷點并啟動程式三、被動連接配接調試

2.2.2 伺服器啟動jar程式

## 參數必須在 -jar 之前java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar your.jar
           

啟動java程式後日志會提示:

Listening for transport dt_socket at address: 5005
           

2.2.3 在idea設定斷點并啟動程式

eclipse cdt無法調試_遠端調試Java程式一、概述二、主動連接配接調試1. 說明2. 操作步驟2.2.1 IDEA 設定 remote configuration2.2.2 伺服器啟動jar程式2.2.3 在idea設定斷點并啟動程式三、被動連接配接調試

這時就可以開發地在IDEA裡遠端調試Java程式啦。

在Eclipse裡也可以友善地進行設定:

eclipse cdt無法調試_遠端調試Java程式一、概述二、主動連接配接調試1. 說明2. 操作步驟2.2.1 IDEA 設定 remote configuration2.2.2 伺服器啟動jar程式2.2.3 在idea設定斷點并啟動程式三、被動連接配接調試

三、被動連接配接調試

一般用來調試遠端程式無法啟動的問題,類似上面配置,在IDEA裡選擇 Listen to remote JVM,其它可以參照界面設定。我暫時用不到它,就沒有動手測試了。

繼續閱讀