IntelliJ IDEA 進行遠程調試技巧
點擊上方 “ 匠心零度 ” ,選擇“ 設爲星標 ”
做積極的人,而不是積極廢人
這一篇介紹如何使用 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 插件
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 配置
-
與腳本中的指令完全一致
-
遠程 jar 包運行的 host,由於我的 jar 運行在本地,所以使用的是 localhost,一般線上環境自然是修改爲線上的地址
-
與遠程 jar 包進行交互的端口號,idea 會根據指令自動幫我們輸入
-
選擇與遠程 jar 包一致的本地代碼
請務必保證遠程 jar 包的代碼與本地代碼一致!!!
5 驗證
保存第 4 步的配置後,先執行腳本讓遠程的 jar 包跑起來,再在 IDEA 中運行 remote-debug
運行 remote-jar
如上便代表連接運行成功了
在本地打上斷點,訪問 localhost:8080/test
遠程 debug 信息展示
可以在本地看到堆棧信息,大功告成。一行指令便完成了遠程調試。
END
如果讀完覺得有收穫的話,歡迎點【好看】,關注【匠心零度】,查閱更多精彩歷史!!!
讓我“ 好看 ”