IntelliJ遠程調試教程


概述

對於分布式系統的調試不知道大家有什么好的方法。對於我來說,在知道遠程調試這個方法之前就是在代碼中打各種log,然后重新部署,上線,調試,這樣比較費時。今天咱們來了解了解Java遠程調試這個牛逼的功能,本文以Intellij IDEA為例講解怎么使用遠程調試。以Thrift入門教程這篇文章中使用的程序作為例子。這個程序由Thrift服務端和客戶端組成。描述一下遠程調試需要解決的問題:

服務端程序運行在一台遠程服務器上,我們可以在本地服務端的代碼(前提是本地的代碼必須和遠程服務器運行的代碼一致)中設置斷點,每當有請求到遠程服務器時時能夠在本地知道遠程服務端的此時的內部狀態。

下面按照步驟介紹怎么遠程debug。

使用特定JVM參數運行服務端代碼

要讓遠程服務器運行的代碼支持遠程調試,則啟動的時候必須加上特定的JVM參數,這些參數是:

-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=${debug_port}

其中的${debug_port}是用戶自定義的,為debug端口,本例以5555端口為例。

本地連接遠程服務器debug端口

打開Intellij IDEA,在頂部靠右的地方選擇”Edit Configurations…”,進去之后點擊+號,選擇”Remote”,按照下圖的只是填寫紅框內的內容,其中host為遠程代碼運行的機器的ip/hostname,port為上一步指定的debug_port,本例是5555

然后點擊Apply,最后點擊OK即可

啟動debug模式

現在在上一步選擇”Edit Configurations…”的下拉框的位置選擇上一步創建的remote的名字,然后點擊右邊的debug按鈕(長的像臭蟲那個),看控制台日志,如果出現類似“Connected to the target VM, address: ‘xx.xx.xx.xx:5555’, transport: ‘socket’”的字樣,就表示連接成功過了。

設置斷點,開始調試

遠程debug模式已經開啟,現在可以在需要調試的代碼中打斷點了,比如:

如圖中所示,如果斷點內有√,則表示選取的斷點正確。

現在在本地發送一個到遠程服務器的請求,看本地控制台的bug界面,划到debugger這個標簽,可以看到當前遠程服務的內部狀態(各種變量)已經全部顯示出來了,並且在剛才設置了斷點的地方,也顯示了該行的變量值。

原文鏈接:http://qifuguang.me/2015/09/18/IntelliJ遠程調試教程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM