欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Intellij IDEA遠(yuǎn)程debug教程實(shí)戰(zhàn)和要點(diǎn)總結(jié)(推薦)

 更新時(shí)間:2021年03月10日 10:45:13   作者:山月風(fēng)成  
這篇文章主要介紹了Intellij IDEA遠(yuǎn)程debug教程實(shí)戰(zhàn)和要點(diǎn)總結(jié)(推薦),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

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

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

  本機(jī)Intellij IDEA遠(yuǎn)程調(diào)試配置

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

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

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

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

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

文本:

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

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

三, Intellij IDEA 啟動(dòng)遠(yuǎn)程調(diào)用

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

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

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

遠(yuǎn)程調(diào)試原理

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

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

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

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

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

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

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

Attach :此種模式下,調(diào)試服務(wù)端(被調(diào)試遠(yuǎn)程運(yùn)行的機(jī)器)啟動(dòng)一個(gè)端口等待我們(調(diào)試客戶端)去連接;

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

配置屬性說(shuō)明補(bǔ)充

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

文本:

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

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

到此這篇關(guān)于Intellij IDEA遠(yuǎn)程debug教程實(shí)戰(zhàn)和要點(diǎn)總結(jié)的文章就介紹到這了,更多相關(guān)Intellij IDEA遠(yuǎn)程debug內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決@Scope(“prototype“)不生效的問(wèn)題

    解決@Scope(“prototype“)不生效的問(wèn)題

    這篇文章主要介紹了解決@Scope(“prototype“)不生效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot參數(shù)校驗(yàn)的方法總結(jié)

    SpringBoot參數(shù)校驗(yàn)的方法總結(jié)

    今天帶大家學(xué)習(xí)SpringBoot參數(shù)校驗(yàn)的方法,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • SpringBoot接值實(shí)現(xiàn)方法詳解

    SpringBoot接值實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了SpringBoot接值實(shí)現(xiàn)方法,SpringBoot接值是指在SpringBoot應(yīng)用程序中接收請(qǐng)求參數(shù),從HTTP請(qǐng)求中獲取參數(shù),并將其綁定到Java對(duì)象中進(jìn)行處理的過(guò)程,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05
  • JAVA代碼塊你了解嗎

    JAVA代碼塊你了解嗎

    這篇文章主要介紹了舉例說(shuō)明Java中的代碼塊,包括靜態(tài)屬性和非靜態(tài)屬性以及構(gòu)造函數(shù)等相關(guān)的執(zhí)行先后,需要的朋友可以參考下
    2021-09-09
  • 基于jQuery獲取table數(shù)據(jù)發(fā)送到后端

    基于jQuery獲取table數(shù)據(jù)發(fā)送到后端

    這篇文章主要介紹了基于jQuery獲取table數(shù)據(jù)發(fā)送到后端,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 如何使用Spring RestTemplate訪問(wèn)restful服務(wù)

    如何使用Spring RestTemplate訪問(wèn)restful服務(wù)

    這篇文章主要介紹了如何使用Spring RestTemplate訪問(wèn)restful服務(wù),詳細(xì)的介紹了什么是RestTemplate以及簡(jiǎn)單實(shí)現(xiàn),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10
  • Android中PreferenceFragment的使用詳解

    Android中PreferenceFragment的使用詳解

    本文主要介紹了Android中PreferenceFragment的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java以struts2為例介紹如何實(shí)現(xiàn)圖片上傳

    Java以struts2為例介紹如何實(shí)現(xiàn)圖片上傳

    這篇文章主要介紹了Java struts2中如何實(shí)現(xiàn)圖片上傳的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • Spring之spring-context-indexer依賴詳解

    Spring之spring-context-indexer依賴詳解

    這篇文章主要介紹了Spring之spring-context-indexer依賴詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java實(shí)現(xiàn)微信公眾平臺(tái)發(fā)送模板消息的示例代碼

    java實(shí)現(xiàn)微信公眾平臺(tái)發(fā)送模板消息的示例代碼

    這篇文章主要介紹了java實(shí)現(xiàn)微信公眾平臺(tái)發(fā)送模板消息的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評(píng)論