您好,登錄后才能下訂單哦!
在本地開發過程中,對代碼進行Debug能逐行對代碼邏輯進行調試,方便準備的排查問題。但是當代碼發布到線上時,如果運行過程中出現異常,僅僅依靠日志來排查問題的話,會比較耗時,而且經常由于日志不全等原因而不能快速準確定位問題,而通過對JAVA代碼進行遠程Debug能很好的解決這個問題。
這篇博文主要介紹在IDEA中配置JAVA代碼遠程Debug,以及需要注意的事項。
我們知道,Java 程序是統一以字節碼的形式運行在Java 虛擬機上的,因為都是字節碼文件,所以只要本地代碼和遠程服務器上的類文件相同,兩個JVM就可以通過調試協議進行通信。這里需要注意的是,被調試的服務器需要開啟調試模式,服務器端的代碼和本地代碼必須保持一致,否則斷點無法進入。
在IDEA中進行JAVA代碼的遠程Debug,需要做兩步準備工作。
項目類型:Spring Boot項目
JDK版本:1.8.0_131
項目啟動命令:java -jar -Dspring.profiles.active=development -Xms1024m -Xmx1024m -Xmn600m -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=4001 -XX:-OmitStackTraceInFastThrow -XX:+UseG1GC -XX:G1ReservePercent=25 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:log/gc.log smart-building.jar
其中開啟遠程debug的配置是:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=4001
參數說明:
jdwp:java debug wire protocol
transport=dt_socket:以socket協議進行通信
server=y:開啟調試服務端
address=4001:通信端口是4001
Host表示遠程服務端的IP地址。
Port表示跟遠程服務端進行Debug通信的端口。
Command Line表示啟動參數,注明開啟遠程Debug。
Use module classpath 表示遠程服務對應的本地代碼路徑。
當在IDEA控制臺輸出這行日志,說明本地IDEA已連接上了遠程服務的Debug端口,接下來可以跟調試本地代碼一樣,開始遠程代碼Debug。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。