java程序員必會的遠程debug教程
正文
現(xiàn)在都是拆分的比較細的微服務(wù)了,當系統(tǒng)運行在測試環(huán)境出現(xiàn)問題的時候,就需要按照日志來分析出什么問題了。有的能看出來,要是年久失修的老項目,那么說不定連log都沒有。純純的看源碼找問題,效率就很低了。
其實這個時候還可以遠程debug,來更精確的定位問題。效率也是高高滴。
這個之前在工作中其實一直在使用,但是不知道咋配置的,今天就找了一些資料,自己實際配置了一下。
下邊我們介紹下如何操作:
啟動添加參數(shù)
啟動的時候添加如下參數(shù):
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=192.168.1.101:7891 -jar demo-0.0.1-SNAPSHOT.jar
參數(shù)大概講一下:
transport 指定了調(diào)試數(shù)據(jù)的傳送方式,dt_socket是指用SOCKET模式,另有dt_shmem指用共享內(nèi)存方式,其中,dt_shmem只適用于Windows平臺;
address 調(diào)試服務(wù)器的端口號,客戶端用來連接服務(wù)器的端口號;
server=y/n VM 是否需要作為調(diào)試服務(wù)器執(zhí)行;
suspend=y/n 是否在調(diào)試客戶端建立連接之后啟動 VM;
啟動成功后顯示如下:

配置idea
我我們可以去idea配置了。
點擊 editConfigurations...

點擊左上角的+號,選擇Remote Jvm Debug

填寫地址和端口號

點擊apply,點擊OK
啟動debug模式
這時就可以點擊debug按鈕啟動了

成功會有如下提示:

測試
編寫測試代碼如下:
@Slf4j
@RestController
@RequestMapping("test")
public class TestDebug {
@GetMapping(value = "debug/{num}")
public String verifyNum(@PathVariable Integer num) {
int a = num;
log.info("接收到參數(shù){}",a);
return "ok";
}
}
當使用瀏覽器訪問這個接口,并在log位置添加斷點的時候
http://192.168.1.101:8080/test/debug/1
就會走進斷點,并顯示我們傳入的值。

這個時候就可以愉快的debug啦。
以上就是java程序員必會的遠程debug教程的詳細內(nèi)容,更多關(guān)于java遠程debug的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java final 和instanceof 關(guān)鍵字的區(qū)別
這篇文章介紹了java final 和instanceof 關(guān)鍵字的區(qū)別,有需要的朋友可以參考一下2013-09-09
JAVA使用POI獲取Excel的列數(shù)與行數(shù)
Apache POI 是用Java編寫的免費開源的跨平臺的 Java API,Apache POI提供API給Java程式對Microsoft Office格式檔案讀和寫的功能。 下面這篇文章給大家介紹了JAVA使用POI獲取Excel列數(shù)和行數(shù)的方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-12-12
java讀取resources文件詳解及實現(xiàn)代碼
這篇文章主要介紹了java讀取resources文件詳解及實現(xiàn)代碼的相關(guān)資料,在開發(fā)項目的時候經(jīng)常會遇到讀取文件夾里面的內(nèi)容,需要的朋友可以參考下2017-07-07

