IDEA debug 遠程 JVM 解決線上部署疑難雜癥
“ IDEA debug 遠程 JVM 解決線上部署疑難雜癥”
工作中經(jīng)常會遇到開發(fā)時正常, 部署線上就出錯的問題, 尤其是問題發(fā)生在引用的第三方 jar 時, 往往日志是不能定位問題的. 此時, 如果能用本地 IDEA 和代碼 debug 調(diào)試服務器上的服務的話將會很好,很容易的定位和解決問題, 而 IDEA 其實本身就是支持本地連接遠程 JVM 以實現(xiàn)遠程 debug 的.
0. 環(huán)境準備
準備一個基于 maven 的 SpringBoot 項目做為演示, 并打成 jar 包在服務器運行

1. 遠程服務器增加 JVM 參數(shù)開啟調(diào)試模式
在服務器運行時添加如下參數(shù)(命令可以直接從 IDEA copy):
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005或者
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005完整命令:
java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 test-lsh-0.0.1-SNAPSHOT.jar或者
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 test-lsh-0.0.1-SNAPSHOT.jar其中
5005為服務開放的調(diào)試端口, 可以隨意指定. 當服務運行時看到如下輸出即表示服務以調(diào)試模式運行成功.

2. IDEA 配置
進入 Edit Configurations

或者

添加遠程連接

輸入遠程服務地址和調(diào)試端口(注意是第一步指定的調(diào)試端口, 不是服務啟動端口)

其中:
Debugger Mode:
Attach to remote JVM: 連接到遠程 JVM
Listen to remote JVM: 開啟一個端口供遠程去連接
Command Line顯示的參數(shù)其實就是第一步服務端啟動的參數(shù), 可以直接 copy.
啟動調(diào)試

當看到下面輸出就表示遠程調(diào)試已連接

3. Debug
首先在本地代碼中添加斷點


測試訪問 controller, 觀察debug 是否成功
請求
http://192.168.3.122:80/test


請求
http://192.168.3.122:80/test?user=JackLi
如果有任何相關的問題都可以加入 QQ/微信群一起討論, 學習, 進步. 此外如果有任何對于本公眾號的意見和建議也歡迎大家留言積極批評指正, 最后, 愿你我都能成為更好的自己.
我是帥帥, 一個集帥氣, 幽默與內(nèi)涵, 并且熱愛編程, 擁抱開源, 喜歡烹飪與旅游的暖男, 我們下期再見. 拜了個拜!
每文一句
————
Don't aim for success if you really want it. Just stick to what you love and believe in, and it will come naturally.
少一些功利主義的追求, 多一些不為什么的堅持.
日常求贊
————
你們白漂的力量就是我拖更的史詩級動力, 點贊, 評論, 再看, 贊賞, 看都看到這了, 隨便點一個咯.
關注加好友
拉你進大佬交流群
————————————————


