遠程調試的正確姿勢

目前測試環境開啓了遠程調試,但是很多小夥伴不清楚遠程調試的正確姿勢,容易影響其他人對於測試環境的使用,更嚴重的可能會導致服務不可用。這裏講一下我們瞭解到的遠程調試正確姿勢,供小夥伴們參考。

一、遠程調試的開啓
1)Tomcat工程是在tomcat所在目錄下的bin/startup.bat中,加入

SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

2)springBoot工程在啓動時加上同樣的參數

java -server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -jar ***.jar

具體的參數含義:

-server是通知JVM工作在服務器模式下

-Xdebug是通知JVM工作在DEBUG模式下

-Xnoagent禁用默認sun.tools.debug調試器

-Djava.compiler=NONE禁止 JIT 編譯器的加載

-Xrunjdwp加載JDWP的JPDA參考執行實例(JDWP是java調試傳輸協議,即調試器與目標java程序之間的傳輸協議。JVM自帶對這個協議的支持。)

transport用於在調試程序和 VM 使用的進程之間通訊

dt_socket套接字傳輸

server=y/n JVM 是否需要作爲調試服務器執行

suspend=y/n是否在調試客戶端建立連接之後啓動 JVM(如果排查遠程服務啓動不成功的問題,可以嘗試設置爲y,這樣工程啓動時就會連接到本地)

address調試服務器的端口號,客戶端用來連接服務器的端口號

二、IDEA調試器的使用

1.查詢遠程服務地址及調試端口

Ip可以在彈性雲中看到容器地址。

端口可用ps -ef|grep ***查看進程信息,如果開啓了遠程調試,可以看到上述參數,address爲調試端口。

2.新建遠程連接

點擊edit Configurations,點擊+新增,點擊remote。

在這裏插入圖片描述

設置name/host/port
在這裏插入圖片描述

3.點擊debug圖標,出現以下提示即爲遠程連接成功
在這裏插入圖片描述

4.設置與使用斷點

在想要調試的代碼上輕輕一點就能打上斷點。但是我們很有必要對斷點進行一些正確的設置,使用時也要有注意點。不然很容易產生不良影響。

1)斷點選Thread,有必要可加Condition

在這裏插入圖片描述

Thread與all的不同點在於,當進入Thread斷點時,未打斷點的請求依然可以訪問。

當進入All斷點時,整個服務的請求都會被阻塞住。

Condition的寫法與java語法一致。如
在這裏插入圖片描述

2)進入斷點後,點擊mute

愛護環境,人人有責。遠程環境需要我們大家一起愛護,用了遠程調試,可能會影響別人的調用。而且如果是RPC服務,長時間得不到響應可能會導致集羣認爲遠程服務是髒節點,導致後續的請求都不能得到響應,一段時間才能恢復。

一個非常好的避免方法就是,當我們的程序進入斷點後,迅速點擊mute,這樣別人再次調用這個接口時能夠調通。並且不會影響我們這一次的調試。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章