客戶端(idea 、eclipse 等)之所以可以進(jìn)行調(diào)試,是由于客戶端 和 服務(wù)端(程序端)進(jìn)行了 socket 通信,通信過程如下:
1、先建立起了 socket 連接
2、將斷點(diǎn)位置創(chuàng)建了斷點(diǎn)事件通過 JDI 接口傳給了 服務(wù)端(程序端)的 VM,VM 調(diào)用 suspend 將 VM 掛起 ????????????????????????????????????????????????????????????????
3、VM 掛起之后將客戶端需要獲取的 VM 信息返回給客戶端,返回之后 VM resume 恢復(fù)其運(yùn)行狀態(tài)
4、客戶端獲取到 VM 返回的信息之后可以通過不同的方式展示給客戶
使用步驟
步驟1:打開Inteliij IDEA,頂部菜單欄選擇Run-> Edit Configurations,進(jìn)入調(diào)試配置界面
步驟2:點(diǎn)擊左上角'+'號(hào),選擇Remote JVM Debug。分別填寫右側(cè)三個(gè)紅框中的參數(shù):Name,Host(要調(diào)試的機(jī)器ip),Port(想要指定的遠(yuǎn)程調(diào)試端口)
步驟3:復(fù)制Command line arguments for remote JVM的值,點(diǎn)擊ok
步驟4:兩種方式(建議使用方法一)
方法一:進(jìn)入服務(wù)器端,ps -ef | grep tomcat808x查看運(yùn)行參數(shù)
啟動(dòng)命令 = 復(fù)制的紅色部分 + idea復(fù)制的參數(shù) + 復(fù)制的黃色部分
執(zhí)行組合的啟動(dòng)命令
方法二:進(jìn)入服務(wù)器端的catalina.sh文件,在第一行添加參數(shù)
CATALINA_OPTS="idea復(fù)制的參數(shù)"
重啟tomcat即可生效(shutdown.sh /startup.sh)
區(qū)別:方法一是永久有效的,只需要配置一次,之后每次啟動(dòng)都是debug啟動(dòng)
?????? ? 方法二是暫時(shí),配置參數(shù)才會(huì)以debug啟動(dòng)(建議使用方法二)
步驟5:本地IDEA啟動(dòng)debug模式,控制臺(tái)顯示Connected to the target VM, address: '10.144.1.191:5000', transport: 'socket' 即連接成功文章來源:http://www.zghlxwxcb.cn/news/detail-706040.html
注:文章來源地址http://www.zghlxwxcb.cn/news/detail-706040.html
- 遠(yuǎn)程debug的代碼必須與遠(yuǎn)程部署的代碼完全一致,不能發(fā)生任何的修改,否則打上的斷點(diǎn)將無法命中,切記切記。
- 這種方式是socket的方式去連遠(yuǎn)程tomcat的。你需要把端口對(duì)外開放。并且他是堵塞式的,同一時(shí)間只能支持一臺(tái)客戶端去調(diào)試
- 建議調(diào)試時(shí)盡快走過斷點(diǎn)方法,以免阻塞生產(chǎn)環(huán)境的使用
到了這里,關(guān)于使用IDEA進(jìn)行遠(yuǎn)程調(diào)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!