點擊上方 匠心零度 ,選擇“ 設爲星標

做積極的人,而不是積極廢人

這一篇介紹如何使用 Intellij IDEA 實現遠程 debug。

項目中經常會有出現這樣的問題,會令程序員抓狂:關鍵代碼段沒有打印日誌,本地環境正常生產環境卻又問題… 這時候,遠程 debug 可能會啓動作用。

1 準備用於 debug 的代碼

準備一個 RestController 用於接收請求,最後可以通過本地斷點驗證是否成功開啓了遠程 debug

@RestController
public class TestController {

@RequestMapping("/test")
public Integer test() {
int i = 0;
i++;
i++;
i++;
i++;
i++;
return i;
}

}

項目使用 springboot 和 maven 構建,依賴就省略了,使用 springboot 提供的 maven 打包插件,方便我們打包成可運行的 jar。

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>

2 使用 maven 插件打包成 jar

maven 插件

maven 插件

3 準備啓動腳本

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=64057 remote-debug-1.0-SNAPSHOT.jar
-
transport=dt_socket,server=y,suspend=n,address=64057

4 配置 IDEA

IDEA 配置

IDEA 配置

  1. 與腳本中的指令完全一致

  2. 遠程 jar 包運行的 host,由於我的 jar 運行在本地,所以使用的是 localhost,一般線上環境自然是修改爲線上的地址

  3. 與遠程 jar 包進行交互的端口號,idea 會根據指令自動幫我們輸入

  4. 選擇與遠程 jar 包一致的本地代碼

請務必保證遠程 jar 包的代碼與本地代碼一致!!!

5 驗證

保存第 4 步的配置後,先執行腳本讓遠程的 jar 包跑起來,再在 IDEA 中運行 remote-debug

運行 remote-jar

運行 remote-jar

如上便代表連接運行成功了

在本地打上斷點,訪問 localhost:8080/test

遠程 debug 信息展示

遠程 debug 信息展示

可以在本地看到堆棧信息,大功告成。一行指令便完成了遠程調試。

END

如果讀完覺得有收穫的話,歡迎點【好看】,關注【匠心零度】,查閱更多精彩歷史!!!

讓我“ 好看 ” 

相關文章