Java高效開發-遠程debug

  • 2022 年 1 月 18 日
  • 筆記

1.前言

“這怎麼回事?在本地還好好,放到服務器就不行了。這該怎麼排查,日誌也看不出來啥呀”,日常開發中經常會出現這種問題,這時候就可以嘗試idea遠程debug的模式試試

2.使用

1.環境:idea2021

2.idea配置

file
file
file

重點:將自動生成的參數添加到啟動命令里

3.啟動腳本

nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar xxxxx-0.0.1-SNAPSHOT.jar &

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 從idea里複製即可

其他的命令是根據自身情況修改

4.啟動debug

控制台出現一下字樣即成功!
connected to the target VM,addree:'xxx.xx.xx.xx:xxxx',transport:'socket'

3.說明

1.端口不能被佔用,且防火牆要開放對應端口或者關閉防火牆

2.斷點開啟後會導致阻塞,所以這個不要在測試環境或者生產環境玩(一般也沒有權限)

3.記住控制台是不會打印日誌的

4.遠程的運行的代碼要跟本地的一致(重要)

4.總結

排查問題效率高,特別是對於服務器和本地系統差異性導致問題難以排查的時候,但是不要在測試環境或者生產環境使用,會影響他人。