一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Intellij IDEA遠程debug教程實戰(zhàn)和要點總結(jié)

 一本正經(jīng)地胡鬧 2020-05-22

遠程調(diào)試,特別是當(dāng)你在本地開發(fā)的時候,你需要調(diào)試服務(wù)器上的程序時,遠程調(diào)試就顯得非常有用。

  JAVA 支持調(diào)試功能,本身提供了一個簡單的調(diào)試工具JDB,支持設(shè)置斷點及線程級的調(diào)試同時,不同的JVM通過接口的協(xié)議聯(lián)系,本地的Java文件在遠程JVM建立聯(lián)系和通信。此篇是Intellij IDEA遠程調(diào)試的教程匯總和原理解釋,知其然而又知其所以然。

 

本機Intellij IDEA遠程調(diào)試配置

1,打開Inteliij IDEA,頂部菜單欄選擇Run-> Edit Configurations,進入下圖的運行/調(diào)試配置界面。

2,點擊左上角'+'號,選擇Remote。分別填寫右側(cè)三個紅框中的參數(shù):Name,Host(想要指定的遠程調(diào)試端口)。

3,點擊界面右下角應(yīng)用按鈕即可。

二,服務(wù)器端開啟調(diào)試模式,增加JVM啟動參數(shù),以支持遠程調(diào)試

  服務(wù)器端的catalina.sh文件,在Tomcat的安裝目錄下,復(fù)制到本地,進行編輯,在第一行添加參數(shù)配置如下,完成后粘貼回去。

文本:

CATALINA_OPTS='-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8089'

配置添加之后,重啟tomcat即可生效(shutdown.sh /startup.sh)到此,開始遠程調(diào)試。

, Intellij IDEA 啟動遠程調(diào)用

最后,打開IDEA,程序上打上斷點,運行模式選遠程,點擊運行。調(diào)用服務(wù)器端運行的系統(tǒng)程序,系統(tǒng)自動進入斷點

4,為什么可以進行遠程調(diào)試,背后的原理是什么?

   首先,了解下的Java程序的執(zhí)行過程- 分為以下幾個步驟:Java的文件 - - 編譯生成的類文件(class文件) - - JVM加載類文件 - - JVM運行類字節(jié)碼文件 - - JVM翻譯器翻譯成各個機器認(rèn)識的不同的機器碼。

遠程調(diào)試原理

   眾所周知,Java 程序是運行在Java 虛擬機(JVM )上的,具有良好跨平臺性,是因為Java程序統(tǒng)一以字節(jié)碼的形式在JVM中運行,不同平臺的虛擬機都統(tǒng)一使用這種相同的程序存儲格式。因為都是類字節(jié)碼文件,只要本地代碼和遠程服務(wù)器上的類文件相同,兩個JVM通過調(diào)試協(xié)議進行通信(例如通過插座在同一個端口進行通信),另外需要注意的時,被調(diào)試的服務(wù)器需要開啟調(diào)試模式,服務(wù)器端的代碼和本地代碼必須保持一致,則會造成斷點無法進入的問題。

<code>Java</code>的調(diào)試器架構(gòu)

   這個架構(gòu)其實質(zhì)還是JVM,只要確保本地的Java的源代碼與目標(biāo)應(yīng)用程序一致,本地的Java的的的的源碼就可以用插座連接到遠端的JVM,進而執(zhí)行調(diào)試。因此,在這種插座連接模式(下文介紹)下,本地只需要有源碼,本地的Java的應(yīng)用程序根本不用啟動。

傳輸方式,默認(rèn)為Socket ;

套接字:MACOS,Linux的系統(tǒng)使用此種傳輸方式;

共享內(nèi)存:WINDOWS系統(tǒng)使用此種傳輸方式。

調(diào)試模式,默認(rèn)為Attach ;

Attach :此種模式下,調(diào)試服務(wù)端(被調(diào)試遠程運行的機器)啟動一個端口等待我們(調(diào)試客戶端)去連接;

Socket :此種模式下,是我們(調(diào)試客戶端)去監(jiān)聽一個端口,當(dāng)調(diào)試服務(wù)端準(zhǔn)備好了,就會進行連接。

配置屬性說明補充

1.idea的的服務(wù)的開啟調(diào)試模式設(shè)置詳細說明,

文本:

CATALINA_OPTS='-Xdebug  -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8089'

2.各參數(shù)解釋:

  • -Xdebug:通知JVM工作在調(diào)試模式下
  • -Xrunjdwp:通知JVM使用(java debug wire protocol)來運行調(diào)試環(huán)境。參數(shù)同時有一系列的調(diào)試選項:
  • <code>session</code>:指定了調(diào)試數(shù)據(jù)的傳送方式,dt_socket是指用SOCKET模式,另外dt_shmem指用共享內(nèi)存方式,其中dt_shmem只適用于窗口平臺.server  參數(shù)是指是否支持在服務(wù)器模式的虛擬機中。
  • onthrow:指明當(dāng)產(chǎn)生該類型的異常時,JVM就會中斷下來,進行調(diào)式該參數(shù)任選。
  • <code>release</code>:指明當(dāng)JVM被中斷下來時,執(zhí)行的可執(zhí)行程序該參數(shù)可選
  • <code>suspend</code><:指明:是否在調(diào)試客戶端建立起來后,再執(zhí)行 JVM。
  • onuncaught(= y或n)指明出現(xiàn)未捕獲的異常后,是否中斷JVM的執(zhí)行。

3.IDEA設(shè)置遠程屬性說明,以下為谷歌翻譯

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    精品欧美在线观看国产| 国产精品熟女在线视频| 五月婷日韩中文字幕四虎| 日韩欧美国产精品自拍| 中文字幕精品一区二区三| 亚洲永久一区二区三区在线| 精品午夜福利无人区乱码| 亚洲男人的天堂久久a| a久久天堂国产毛片精品| 亚洲一区二区三区在线中文字幕| 内用黄老外示儒术出处| 国产精品一区二区不卡中文| 在线免费国产一区二区三区| 熟女乱一区二区三区丝袜| 美国女大兵激情豪放视频播放| 国产日产欧美精品视频| 深夜少妇一区二区三区| 国产又粗又猛又大爽又黄同志| 亚洲一区二区精品福利| 大伊香蕉一区二区三区| 欧美成人精品国产成人综合| 九九热在线视频观看最新| 欧美一级内射一色桃子| 欧美日韩国产综合在线| 国产福利一区二区久久| 亚洲最新中文字幕一区| 国产精品流白浆无遮挡| 精品一区二区三区中文字幕| 欧美日韩国产精品自在自线| 亚洲一区二区三区福利视频| 中国美女偷拍福利视频| 亚洲国产综合久久天堂| 国产高清三级视频在线观看| 午夜日韩在线观看视频| 日本一本在线免费福利| 粉嫩一区二区三区粉嫩视频| 成人精品国产亚洲av久久| 日韩精品日韩激情日韩综合| 免费福利午夜在线观看| 中文字幕日韩欧美一区| 亚洲高清欧美中文字幕|