如何使用idea远程debug调试代码详解
目錄
一、idea遠程debug原理
二、創(chuàng)建一個springboot工程
三、IDEA遠程調試配置
?四、服務端開始debug模式
?五、idea啟動遠程調用
六、啟動遠程調試參數解釋?
一、idea遠程debug原理
遠程調試,需要調試服務器上的程序時,遠程調試就顯得非常有用。JAVA 支持調試功能,本身提供了一個簡單的調試工具JDB,支持設置斷點及線程級的調試同時,不同的JVM通過接口的協(xié)議聯(lián)系,本地的Java文件在遠程JVM建立聯(lián)系和通信。
- 本地代碼監(jiān)聽遠程調試端口,在在本地需要調試代碼打下斷點。
- 訪問遠程服務。
- 遠程服務觸發(fā)idea編輯器本地代碼,本地代碼進入debug狀態(tài)。
- 在本地調試代碼,解決代碼bug。
簡單流程如下:
二、創(chuàng)建一個springboot工程
之前已經介紹過很多創(chuàng)建springboot工程的文章了,可以參考這篇文章:如何創(chuàng)建一個springboot工程
三、IDEA遠程調試配置
1,打開idea,頂部菜單欄選擇Run-> Edit Configurations,進入下圖的運行/調試配置界面。
2,點擊左上角'+'號,選擇Remote。分別填寫右側三個紅框中的參數:Name,Host(想要指定的遠程調試端口)。
3,點擊界面右下角應用按鈕即可。
?四、服務端開始debug模式
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar spring-boot-mybatis-plus-0.0.1-SNAPSHOT.jar
?五、idea啟動遠程調用
程序上打上斷點,點擊運行。調用服務器端運行的系統(tǒng)程序,系統(tǒng)自動進入斷點。
六、啟動遠程調試參數解釋?
- transport:指定了調試數據的傳送方式,dt_socket是指用SOCKET模式,另外dt_shmem指用共享內存方式,其中dt_shmem只適用于窗口平臺.server ?參數是指是否支持在服務器模式的虛擬機中。
- server參數是指是否支持在server模式的VM中。
- onthrow:指明當產生該類型的異常時,JVM就會中斷下來,進行調式該參數任選。
- launch指明,當JVM被中斷下來時,執(zhí)行的可執(zhí)行程序。該參數可選。
- suspend指明,是否在調試客戶端建立起來后,再執(zhí)行JVM。
- onuncaught(= y或n)指明出現(xiàn)未捕獲的異常后,是否中斷JVM的執(zhí)行。
?
總結
以上是生活随笔為你收集整理的如何使用idea远程debug调试代码详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何解决mapstruct和lombok
- 下一篇: Java不可变类作为参数传递遇到的坑