使用IDEA進行遠端除錯

2022-06-25 05:18:09 字數 1347 閱讀 2575

對於分布式系統的除錯不知道大家有什麼好的方法。對於我來說,在知道遠端除錯這個方法之前就是在**中打各種log,然後重新部署,上線,除錯,這樣比較費時,有什麼更好的辦法呢?

有時候,本地除錯的時候沒有問題,打包部署到測試環境的時候卻爆出一堆莫名其妙的問題,這時該怎麼辦呢?

偶然間了解到的遠端除錯的功能簡直是一把利器,能夠非常好地解決上述問題,還不趕緊來了解一下?

要讓遠端伺服器執行的**支援遠端除錯,則啟動的時候必須加上特定的jvm引數,這些引數是:

-xdebug -xrunjdwp:transport=dt_socket,suspend=n,server=y,address=$
其中的$是使用者自定義的,為debug埠,本例以5555埠為例。

本人在這裡踩過乙個坑,必須要說一下。在使用公司內部的自動化部署平台ndp進行應用部署時,該平台號稱支援遠端除錯,只需要在某個配置頁面配置一下除錯埠號(沒有填寫任何ip相關的資訊),並且重新發布一下應用即可。事實上也可以發現,上述jvm引數中唯一可變的就是$。但是實際在本地連線時發現卻始終連不上5555 的除錯埠,仔細排查才發現,下面擷取了ndp發布的應用所有jvm引數列表中與遠端除錯相關的jvm啟動引數如下:

-xdebug -xrunjdwp:transport=dt_socket,suspend=n,server=y,address=127.0.0.1:5555
將address設定為127.0.0.1:5555,表示將除錯埠限制為本地訪問,遠端無法訪問,這個應該是ndp平台的乙個bug,我們在自己設定jvm的啟動引數時也需要格外注意。

如果只是臨時除錯,在埠號前面不要加上限制訪問的ip位址,除錯完成之後,將上述jvm引數去除掉之後重新發布下,防範開放遠端除錯埠可能帶來的安全風險。

現在在上一步選擇」edit configurations…」的下拉框的位置選擇上一步建立的remote webserver,然後點選右邊的debug按鈕(長的像臭蟲那個),看控制台日誌,如果出現類似「connected to the target vm, address: 『xx.xx.xx.xx:5555』, transport: 『socket』」的字樣,就表示連線成功過了。我這裡實際顯示的內容如下:

connected to the target vm, address: '10.185.0.192:15555', transport: 'socket
遠端debug模式已經開啟,現在可以在需要除錯的**中打斷點了

idea 遠端除錯 IDEA遠端除錯

大部分測試環環境和本地環境有區別,在本地上也很難搭建起一套完整的服務,所以導致了在本地可以發布到伺服器上卻出現各種問題,這時候我們就可以借助遠端除錯來幫助我們快速的定位問題的所在。遠端除錯需要在伺服器上部署與本地一致的 xdebug xrunjdwp transport dt socket,serv...

使用idea遠端除錯

必須保證遠端需要除錯類的 和本地 一模一樣 遠端服務啟動時配置以下jvm引數 xdebug xrunjdwp transport dt socket,suspend n,server y,address 9999其中9999位遠端服務暴露的除錯埠,不可將除錯埠設定為已占用埠否則埠衝突。在idea中,...

IDEA如何進行遠端除錯

測試題外話 win10 idea2021.1.4 centos7 tomcat9.0.43 我對springboot專案打了war包,有版本依賴 spring boot starter parent 2.3.4.release spring boot starter web tomcat embed...