IDEA 远程调试
IDEA 遠程調試,像運行本地代碼一樣調試遠程主機上的程序,以排查遠程程序的BUG或代碼執行流程。
?
1 概述
原理:本機和遠程主機的兩個 VM 之間使用 Debug 協議通過 Socket 通信,傳遞調試指令和調試信息。
被調試程序的遠程虛擬機:作為 Debug 服務端,監聽 Debug 調試指令。jdwp是Java Debug Wire Protocol的縮寫。
調試程序的本地虛擬機:IDEA 中配置的 Remote Server,指定 Debug 服務器的Host:Port,以供 Debug 客戶端程序連接。
2 設置
2.1 IDEA 中指定 Debug 服務器
- 點擊主窗口菜單?Run / Edit Configurations,打開“Run/Debug Configurations”窗口;
- 點擊工具欄上的“+”按鈕,下拉菜單中選擇“Remote”;
- 設置 Host 為遠程服務器的域名或IP,保持 Port=5005 無需調整;
- 復制命令行參數,形如?-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
2.2 遠程服務中開啟 Debug 服務
2.2.1 對于 SpringBoot
命令行添加選項,并重啟:
## 注意新參數必須在 -jar 之前 jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar test.jar
啟動腳本中添加選項,并重啟:2.2.2 對于 Tomcat
2.3 遠程服務器防火墻端口放行
### sudo vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5005 -j ACCEPT
### 重啟生效: sudo systemctl restart iptables
3 開始調試
要求:雙方代碼一致,否則遠程調試無法啟動;
- 本地啟動剛剛配置的 Remote Server,正常時會看到日志:?Connected to the target VM, address: 'xxx:5005', transport: 'socket'
- 本地 IDEA 代碼中設置斷點
- 瀏覽器或手機 HTTP 訪問服務器
- IDEA 即可在斷點暫停并跟蹤
4 關閉調試
服務器上多開放個端口是不安全的,調試完畢后可恢復防火墻設置。
而 Java 服務器開啟 Debug 服務器的功能可以保留,以便之后再次調試。
總結
- 上一篇: 电脑照片尺寸如何调整成自己想要的
- 下一篇: 小程序毕设作品之微信校园洗衣小程序毕业设