本發(fā)明涉及動態(tài)語言技術(shù)領(lǐng)域,特別是涉及一種動態(tài)語言遠(yuǎn)程調(diào)試方法及系統(tǒng)。
背景技術(shù):
對于動態(tài)語言,比較統(tǒng)一的說法是:程序在運(yùn)行時(shí)可以改變其結(jié)構(gòu),新的函數(shù)可以被引進(jìn),已有的函數(shù)可以被刪除,即程序在運(yùn)行時(shí)可以發(fā)生結(jié)構(gòu)上的變化,也就可以理解為直接被解釋執(zhí)行的語言稱之為動態(tài)語言,而需要編譯換將將程序轉(zhuǎn)換為其它的中間編碼再執(zhí)行的語言成為靜態(tài)語言。近幾年來,隨著計(jì)算機(jī)硬件性能的不斷提高,處理速度的不斷加快,使得過去一直由于性能原因無法大規(guī)模使用的動態(tài)語言,逐漸成為業(yè)務(wù)開發(fā)的主流語言。
但是,隨著項(xiàng)目規(guī)模的不斷擴(kuò)大,動態(tài)語言存在的調(diào)試問題被逐漸暴露出來,成為又一影響動態(tài)語言做工程化開發(fā)的因素。并且,動態(tài)語言更多的存在于服務(wù)器端運(yùn)行,工程化開發(fā)又需要高效的圖形化的集成開發(fā)環(huán)境作為支撐,而服務(wù)器端大量的系統(tǒng)是不配置圖形用戶界面的,導(dǎo)致研發(fā)人員需要在本地開發(fā)環(huán)境進(jìn)行源碼開發(fā),并提交到服務(wù)器端運(yùn)行,調(diào)試也需要在服務(wù)器端運(yùn)行,這種調(diào)試驗(yàn)證過程極大的限制了系統(tǒng)開發(fā)效率,無法滿足當(dāng)前的開發(fā)要求。
技術(shù)實(shí)現(xiàn)要素:
針對于上述問題,本發(fā)明提供一種動態(tài)語言遠(yuǎn)程調(diào)試方法及系統(tǒng),實(shí)現(xiàn)了提高大規(guī)模工程軟件采用動態(tài)語言的開發(fā)效率的目的。
為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的第一方面,提供了一種動態(tài)語言遠(yuǎn)程調(diào)試方法,該方法適用于動態(tài)語言遠(yuǎn)程調(diào)試系統(tǒng),所述系統(tǒng)包括設(shè)置在服務(wù)器端的動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器、動態(tài)語言調(diào)試器和動態(tài)語言解釋器,以及設(shè)置在本地開發(fā)端的動態(tài)語言調(diào)試控制器,所述動態(tài)語言遠(yuǎn)程調(diào)試方法包括:
所述動態(tài)語言調(diào)試控制器接收到調(diào)試請求后,通過所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器建立與所述動態(tài)語言調(diào)試器的交互連接,控制所述動態(tài)語言調(diào)試器的運(yùn)行動作;
所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器對所述動態(tài)語言調(diào)試控制器進(jìn)行監(jiān)聽,啟動所述動態(tài)語言調(diào)試器,并協(xié)助所述動態(tài)語言調(diào)試器與所述動態(tài)語言調(diào)試控制器建立交互連接;
所述動態(tài)語言調(diào)試器對動態(tài)語言服務(wù)器程序進(jìn)行調(diào)試處理,并通過與所述動態(tài)語言解釋器建立交互連接,控制被調(diào)試程序的執(zhí)行進(jìn)程,獲取被調(diào)試程序的進(jìn)程上下文;
所述動態(tài)語言解釋器分析所述被調(diào)試程序的調(diào)試進(jìn)程的執(zhí)行過程,并將所述被調(diào)試程序的進(jìn)程上下文發(fā)送至所述動態(tài)語言調(diào)試器。
優(yōu)選的,所述動態(tài)語言調(diào)試控制器接收到調(diào)試請求后,通過所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器建立與所述動態(tài)語言調(diào)試器的交互連接,控制所述動態(tài)語言調(diào)試器的運(yùn)行動作,包括:
所述動態(tài)語言調(diào)試控制器接收調(diào)試請求后,建立與所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器的連接,并將申請啟動所述動態(tài)語言調(diào)試器的申請指令發(fā)送至所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器;
當(dāng)所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器接收到申請指令,啟動所述動態(tài)語言調(diào)試器后,所述動態(tài)語言調(diào)試控制器建立與所述動態(tài)語言調(diào)試器的交互連接,并將所述調(diào)試請求發(fā)送至所述動態(tài)語言調(diào)試器,控制所述動態(tài)語言調(diào)試器的運(yùn)行動作。
優(yōu)選的,該方法還包括:
所述動態(tài)語言調(diào)試器控制接收所述動態(tài)語言調(diào)試控制器獲得的運(yùn)行信息,并對所述運(yùn)行信息進(jìn)行展示。
優(yōu)選的,所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器對所述動態(tài)語言調(diào)試控制器進(jìn)行監(jiān)聽,啟動所述動態(tài)語言調(diào)試器,并協(xié)助所述動態(tài)語言調(diào)試器與所述動態(tài)語言調(diào)試控制器建立交互連接,包括:
所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器接收所述動態(tài)語言調(diào)試控制器的調(diào)試請求,并根據(jù)所述調(diào)試請求的請求內(nèi)容,啟動所述動態(tài)語言調(diào)試器;
當(dāng)所述動態(tài)語言調(diào)試器啟動成功后,所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器協(xié)助所述動態(tài)語言調(diào)試器與所述動態(tài)語言調(diào)試控制器建立交互連接。
優(yōu)選的,當(dāng)所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器協(xié)助所述動態(tài)語言調(diào)試器與所述動態(tài)語言調(diào)試控制器建立交互連接之后,該方法還包括:
所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器等待接收所述動態(tài)語言調(diào)試控制器后續(xù)發(fā)出的調(diào)試請求。
優(yōu)選的,所述動態(tài)語言調(diào)試器對動態(tài)語言服務(wù)器程序進(jìn)行調(diào)試處理,并通過與所述動態(tài)語言解釋器建立交互連接,控制被調(diào)試程序的執(zhí)行進(jìn)程,獲取被調(diào)試程序的進(jìn)程上下文之前,該方法還包括:
所述動態(tài)語言調(diào)試器根據(jù)所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器傳遞的啟動參數(shù),對相應(yīng)的運(yùn)行進(jìn)程進(jìn)行啟動處理;
通過所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器的協(xié)助處理,建立與所述動態(tài)語言調(diào)試控制器的交互連接。
優(yōu)選的,所述動態(tài)語言調(diào)試器對動態(tài)語言服務(wù)器程序進(jìn)行調(diào)試處理,并通過與所述動態(tài)語言解釋器建立交互連接,控制被調(diào)試程序的執(zhí)行進(jìn)程,獲取被調(diào)試程序的進(jìn)程上下文,包括:
所述動態(tài)語言調(diào)試器啟動后與所述動態(tài)語言解釋器建立交互連接,接收所述動態(tài)語言調(diào)試控制器的調(diào)試控制指令,控制所述動態(tài)語言解釋器解釋進(jìn)程的執(zhí)行過程;
所述動態(tài)語言調(diào)試器獲得動態(tài)語言服務(wù)器程序調(diào)試處理進(jìn)程的運(yùn)行上下文,并控制所述動態(tài)語言解釋器解釋進(jìn)程的執(zhí)行過程。
根據(jù)本發(fā)明的第二方面,提供了一種動態(tài)語言遠(yuǎn)程調(diào)試系統(tǒng),所述系統(tǒng)包括設(shè)置在服務(wù)器端的動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器、動態(tài)語言調(diào)試器和動態(tài)語言解釋器,以及設(shè)置在本地開發(fā)端的動態(tài)語言調(diào)試控制器,其中,
所述動態(tài)語言調(diào)試控制器,用于接收到調(diào)試請求后,通過所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器建立與所述動態(tài)語言調(diào)試器的交互連接,控制所述動態(tài)語言調(diào)試器的運(yùn)行動作;
所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器,用于對所述動態(tài)語言調(diào)試控制器進(jìn)行監(jiān)聽,啟動所述動態(tài)語言調(diào)試器,并協(xié)助所述動態(tài)語言調(diào)試器與所述動態(tài)語言調(diào)試控制器建立交互連接;
所述動態(tài)語言調(diào)試器,用于對動態(tài)語言服務(wù)器程序進(jìn)行調(diào)試處理,并通過與所述動態(tài)語言解釋器建立交互連接,控制被調(diào)試程序的執(zhí)行進(jìn)程,獲取被調(diào)試程序的進(jìn)程上下文;
所述動態(tài)語言解釋器,用于分析所述被調(diào)試程序的調(diào)試進(jìn)程的執(zhí)行過程,并將所述被調(diào)試程序的進(jìn)程上下文發(fā)送至所述動態(tài)語言調(diào)試器。
優(yōu)選的,所述動態(tài)語言調(diào)試控制器包括:建立單元和控制單元,其中,
所述建立單元,用于接收調(diào)試請求后,建立與所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器的連接,并將申請啟動所述動態(tài)語言調(diào)試器的申請指令發(fā)送至所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器;
所述控制單元,用于當(dāng)所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器接收到申請指令,啟動所述動態(tài)語言調(diào)試器后,建立與所述動態(tài)語言調(diào)試器的交互連接,并將所述調(diào)試請求發(fā)送至所述動態(tài)語言調(diào)試器,控制所述動態(tài)語言調(diào)試器的運(yùn)行動作。
優(yōu)選的,所述動態(tài)語言調(diào)試控制器還包括展示單元,其中,
所述展示單元用于接收所述動態(tài)語言調(diào)試控制器獲得的運(yùn)行信息,并對所述運(yùn)行信息進(jìn)行展示。
優(yōu)選的,所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器包括:啟動單元和協(xié)助單元,其中,
所述啟動單元,用于收所述動態(tài)語言調(diào)試控制器的調(diào)試請求,并根據(jù)所述調(diào)試請求的請求內(nèi)容,啟動所述動態(tài)語言調(diào)試器;
所述協(xié)助單元,用于當(dāng)所述動態(tài)語言調(diào)試器啟動成功后,協(xié)助所述動態(tài)語言調(diào)試器與所述動態(tài)語言調(diào)試控制器建立交互連接。
優(yōu)選的,所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器還包括等待單元,其中,
所述等待單元,用于等待接收所述動態(tài)語言調(diào)試控制器后續(xù)發(fā)出的調(diào)試請求。
優(yōu)選的,所述動態(tài)語言調(diào)試器包括:啟動處理單元和建立連接單元,其中,
所述啟動處理單元,用于根據(jù)所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器傳遞的啟動參數(shù),對相應(yīng)的運(yùn)行進(jìn)程進(jìn)行啟動處理;
所述建立連接單元,用于通過所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器的協(xié)助處理,建立與所述動態(tài)語言調(diào)試控制器的交互連接。
優(yōu)選的,所述動態(tài)語言調(diào)試器還包括:接收單元和獲取單元,其中,
所述接收單元,用于與所述動態(tài)語言解釋器建立交互連接,接收所述動態(tài)語言調(diào)試控制器的調(diào)試控制指令,控制所述動態(tài)語言解釋器解釋進(jìn)程的執(zhí)行過程;
所述獲取單元,用于獲得動態(tài)語言服務(wù)器程序調(diào)試處理進(jìn)程的運(yùn)行上下文,并控制所述動態(tài)語言解釋器解釋進(jìn)程的執(zhí)行過程。
相較于現(xiàn)有技術(shù),本發(fā)明通過設(shè)置在服務(wù)器端的動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器、動態(tài)語言調(diào)試器和動態(tài)語言解釋器,以及設(shè)置在本地開發(fā)端的動態(tài)語言調(diào)試控制器,所述動態(tài)語言調(diào)試控制器接收到調(diào)試請求后,通過所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器建立與所述動態(tài)語言調(diào)試器的交互連接,控制所述動態(tài)語言調(diào)試器的運(yùn)行動作;所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器對所述動態(tài)語言調(diào)試控制器進(jìn)行監(jiān)聽,啟動所述動態(tài)語言調(diào)試器,并協(xié)助所述動態(tài)語言調(diào)試器與所述動態(tài)語言調(diào)試控制器建立交互連接;所述動態(tài)語言調(diào)試器對動態(tài)語言服務(wù)器程序進(jìn)行調(diào)試處理,并通過與所述動態(tài)語言解釋器建立交互連接,控制被調(diào)試程序的執(zhí)行進(jìn)程,獲取被調(diào)試程序的進(jìn)程上下文;所述動態(tài)語言解釋器分析所述被調(diào)試程序的調(diào)試進(jìn)程的執(zhí)行過程,并將所述被調(diào)試程序的進(jìn)程上下文發(fā)送至所述動態(tài)語言調(diào)試器。通過對動態(tài)語言調(diào)試器控制器的控制,來操作動態(tài)語言調(diào)試器對服務(wù)器端的動態(tài)語言程序進(jìn)行遠(yuǎn)程調(diào)試工作,可以與本地的集成開發(fā)環(huán)境進(jìn)行融合,有效地提高了大規(guī)模工程軟件采用動態(tài)語言的開發(fā)效率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例一提供的一種動態(tài)語言遠(yuǎn)程調(diào)試方法的流程示意圖;
圖2為本發(fā)明實(shí)施例二對應(yīng)的圖1中所示步驟s11中的動態(tài)語言調(diào)試控制器執(zhí)行過程的流程示意圖;
圖3為本發(fā)明實(shí)施例二對應(yīng)的圖1中所示步驟s12中的動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器執(zhí)行過程的流程示意圖;
圖4為本發(fā)明實(shí)施例二對應(yīng)的圖1中所示步驟s13中的動態(tài)語言調(diào)試器執(zhí)行過程的流程示意圖;
圖5為本發(fā)明實(shí)施例三提供的一種動態(tài)語言遠(yuǎn)程調(diào)試系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”和“第二”等是用于區(qū)別不同的對象,而不是用于描述特定的順序。此外術(shù)語“包括”和“具有”以及他們?nèi)魏巫冃?,意圖在于覆蓋不排他的包含。例如包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備沒有設(shè)定于已列出的步驟或單元,而是可包括沒有列出的步驟或單元。
實(shí)施例一
參見圖1為本發(fā)明實(shí)施例一提供的一種動態(tài)語言遠(yuǎn)程調(diào)試方法的流程示意圖,該方法適用于動態(tài)語言遠(yuǎn)程調(diào)試系統(tǒng),所述系統(tǒng)包括設(shè)置在服務(wù)器端的動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器、動態(tài)語言調(diào)試器和動態(tài)語言解釋器,以及設(shè)置在本地開發(fā)端的動態(tài)語言調(diào)試控制器,該方法包括以下步驟:
s11、所述動態(tài)語言調(diào)試控制器接收到調(diào)試請求后,通過所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器建立與所述動態(tài)語言調(diào)試器的交互連接,控制所述動態(tài)語言調(diào)試器的運(yùn)行動作;
s12、所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器對所述動態(tài)語言調(diào)試控制器進(jìn)行監(jiān)聽,啟動所述動態(tài)語言調(diào)試器,并協(xié)助所述動態(tài)語言調(diào)試器與所述動態(tài)語言調(diào)試控制器建立交互連接;
s13、所述動態(tài)語言調(diào)試器對動態(tài)語言服務(wù)器程序進(jìn)行調(diào)試處理,并通過與所述動態(tài)語言解釋器建立交互連接,控制被調(diào)試程序的執(zhí)行進(jìn)程,獲取被調(diào)試程序的進(jìn)程上下文;
s14、所述動態(tài)語言解釋器分析所述被調(diào)試程序的調(diào)試進(jìn)程的執(zhí)行過程,并將所述被調(diào)試程序的進(jìn)程上下文發(fā)送至所述動態(tài)語言調(diào)試器。
通過本發(fā)明實(shí)施例一公開的技術(shù)方案,動態(tài)語言調(diào)試控制器在發(fā)起調(diào)試時(shí)會與動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器建立連接,并由動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器根據(jù)動態(tài)語言調(diào)試控制器的請求內(nèi)容啟動動態(tài)語言調(diào)試器,動態(tài)語言調(diào)試器啟動后,動態(tài)語言調(diào)試控制器直接與該動態(tài)語言調(diào)試器建立連接,后續(xù)的調(diào)試過程由動態(tài)語言調(diào)試控制器直接與動態(tài)語言調(diào)試器進(jìn)行交互,動態(tài)語言調(diào)試器負(fù)責(zé)在運(yùn)行環(huán)境上與動態(tài)語言解釋器進(jìn)行交互,控制動態(tài)語言程序的執(zhí)行過程,并獲取被調(diào)試進(jìn)程的上下文。通過將服務(wù)端的動態(tài)語言調(diào)試處理工作分為動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器和動態(tài)語言調(diào)試器兩部分,可以有效的進(jìn)行實(shí)現(xiàn)解耦,簡化了具體實(shí)現(xiàn)過程,并能有效的增加遠(yuǎn)程調(diào)試系統(tǒng)的穩(wěn)定性,有效的提高大規(guī)模工程軟件采用動態(tài)語言的開發(fā)效率。
實(shí)施例二
參照本發(fā)明實(shí)施例一和圖1中所描述的s11到s14步驟的具體過程,并參見圖2至圖4,所述步驟s11即所述動態(tài)語言調(diào)試控制器接收到調(diào)試請求后,通過所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器建立與所述動態(tài)語言調(diào)試器的交互連接,控制所述動態(tài)語言調(diào)試器的運(yùn)行動作,具體包括以下步驟:
s111、所述動態(tài)語言調(diào)試控制器接收調(diào)試請求后,建立與所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器的連接,并將申請啟動所述動態(tài)語言調(diào)試器的申請指令發(fā)送至所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器;
具體的,所述動態(tài)語言調(diào)試控制器接收開發(fā)者啟動的調(diào)試請求,建立與所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器的連接。
s112、當(dāng)所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器接收到申請指令,啟動所述動態(tài)語言調(diào)試器后,所述動態(tài)語言調(diào)試控制器建立與所述動態(tài)語言調(diào)試器的交互連接,并將所述調(diào)試請求發(fā)送至所述動態(tài)語言調(diào)試器,控制所述動態(tài)語言調(diào)試器的運(yùn)行動作。
相應(yīng)的,所述動態(tài)語言調(diào)試控制器的執(zhí)行過程還包括:
所述動態(tài)語言調(diào)試控制器接收所述動態(tài)語言調(diào)試控制器獲得的運(yùn)行信息,并對所述運(yùn)行信息進(jìn)行展示。
相應(yīng)的,所述步驟s12即所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器對所述動態(tài)語言調(diào)試控制器進(jìn)行監(jiān)聽,啟動所述動態(tài)語言調(diào)試器,并協(xié)助所述動態(tài)語言調(diào)試器與所述動態(tài)語言調(diào)試控制器建立交互連接,具體包括以下步驟:
s121、所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器接收所述動態(tài)語言調(diào)試控制器的調(diào)試請求,并根據(jù)所述調(diào)試請求的請求內(nèi)容,啟動所述動態(tài)語言調(diào)試器;
s122、當(dāng)所述動態(tài)語言調(diào)試器啟動成功后,所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器協(xié)助所述動態(tài)語言調(diào)試器與所述動態(tài)語言調(diào)試控制器建立交互連接。
具體的,當(dāng)所述動態(tài)語言調(diào)試器啟動后持續(xù)運(yùn)行,等待動態(tài)語言調(diào)試控制器的連接請求。
在所述步驟s122所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器協(xié)助所述動態(tài)語言調(diào)試器與所述動態(tài)語言調(diào)試控制器建立交互連接之后,還包括:
所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器等待接收所述動態(tài)語言調(diào)試控制器后續(xù)發(fā)出的調(diào)試請求。
對應(yīng)的,在所述步驟s13執(zhí)行之前,即所述動態(tài)語言調(diào)試器對動態(tài)語言服務(wù)器程序進(jìn)行調(diào)試處理,并通過與所述動態(tài)語言解釋器建立交互連接,控制被調(diào)試程序的執(zhí)行進(jìn)程,獲取被調(diào)試程序的進(jìn)程上下文之前,該方法還包括:
所述動態(tài)語言調(diào)試器根據(jù)所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器傳遞的啟動參數(shù),對相應(yīng)的運(yùn)行進(jìn)程進(jìn)行啟動處理;
通過所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器的協(xié)助處理,建立與所述動態(tài)語言調(diào)試控制器的交互連接。
并且所述步驟s13具體包括以下步驟:
s131、所述動態(tài)語言調(diào)試器啟動后與所述動態(tài)語言解釋器建立交互連接,接收所述動態(tài)語言調(diào)試控制器的調(diào)試控制指令,控制所述動態(tài)語言解釋器解釋進(jìn)程的執(zhí)行過程;
s132、所述動態(tài)語言調(diào)試器獲得動態(tài)語言服務(wù)器程序調(diào)試處理進(jìn)程的運(yùn)行上下文,并控制所述動態(tài)語言解釋器解釋進(jìn)程的執(zhí)行過程。
根據(jù)本發(fā)明實(shí)施例二公開的技術(shù)方案,由動態(tài)語言調(diào)試控制器接收開發(fā)人員的調(diào)試請求,并通過動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器啟動動態(tài)語言調(diào)試器并與之建立連接,進(jìn)而控制動態(tài)語言調(diào)試器的運(yùn)行動作;由動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器監(jiān)聽動態(tài)語言調(diào)試控制器發(fā)起的調(diào)試請求,并啟動動態(tài)語言調(diào)試器,并協(xié)助動態(tài)語言調(diào)試器與動態(tài)語言調(diào)試控制器建立連接;由動態(tài)語言調(diào)試器啟動或者關(guān)聯(lián)被調(diào)試進(jìn)程,通過與動態(tài)語言解釋器交互,控制被調(diào)試進(jìn)程的執(zhí)行過程,獲取被調(diào)試進(jìn)程的上下文,通過與動態(tài)語言調(diào)試控制器建立連接,獲取調(diào)試控制信息,并返回被調(diào)試進(jìn)程的進(jìn)程上下文。通過將調(diào)試過程進(jìn)行合理的劃分和布局使動態(tài)語言的遠(yuǎn)程調(diào)試方法實(shí)現(xiàn)起來更加合理簡單,并且遠(yuǎn)程調(diào)試動態(tài)語言服務(wù)器程序,可以有效地提高大規(guī)模工程軟件采用動態(tài)語言的開發(fā)效率。
實(shí)施例三
與本發(fā)明實(shí)施例一和實(shí)施例二所公開的動態(tài)語言遠(yuǎn)程調(diào)試方法相對應(yīng),本發(fā)明的實(shí)施例三還提供了一種動態(tài)語言遠(yuǎn)程調(diào)試系統(tǒng),參見圖5,該系統(tǒng)包括:
設(shè)置在服務(wù)器端的動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器1、動態(tài)語言調(diào)試器2和動態(tài)語言解釋器4,以及設(shè)置在本地開發(fā)端的動態(tài)語言調(diào)試控制器3,其中,
所述動態(tài)語言調(diào)試控制器3,用于接收到調(diào)試請求后,通過所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器建立與所述動態(tài)語言調(diào)試器的交互連接,控制所述動態(tài)語言調(diào)試器的運(yùn)行動作;
所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器1,用于對所述動態(tài)語言調(diào)試控制器進(jìn)行監(jiān)聽,啟動所述動態(tài)語言調(diào)試器,并協(xié)助所述動態(tài)語言調(diào)試器與所述動態(tài)語言調(diào)試控制器建立交互連接;
所述動態(tài)語言調(diào)試器2,用于對動態(tài)語言服務(wù)器程序進(jìn)行調(diào)試處理,并通過與所述動態(tài)語言解釋器建立交互連接,控制被調(diào)試程序的執(zhí)行進(jìn)程,獲取被調(diào)試程序的進(jìn)程上下文;
所述動態(tài)語言解釋器4,用于分析所述被調(diào)試程序的調(diào)試進(jìn)程的執(zhí)行過程,并將所述被調(diào)試程序的進(jìn)程上下文發(fā)送至所述動態(tài)語言調(diào)試器。
相應(yīng)的,所述動態(tài)語言調(diào)試控制器3包括:建立單元31和控制單元32,其中,
所述建立單元31,用于接收調(diào)試請求后,建立與所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器的連接,并將申請啟動所述動態(tài)語言調(diào)試器的申請指令發(fā)送至所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器;
所述控制單元32,用于當(dāng)所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器接收到申請指令,啟動所述動態(tài)語言調(diào)試器后,建立與所述動態(tài)語言調(diào)試器的交互連接,并將所述調(diào)試請求發(fā)送至所述動態(tài)語言調(diào)試器,控制所述動態(tài)語言調(diào)試器的運(yùn)行動作。
具體的,所述動態(tài)語言調(diào)試控制器還包括展示單元33,其中,
所述展示單元33,用于接收所述動態(tài)語言調(diào)試控制器獲得的運(yùn)行信息,并對所述運(yùn)行信息進(jìn)行展示。
對應(yīng)的,所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器1包括:啟動單元11和協(xié)助單元12,其中,
所述啟動單元11,用于收所述動態(tài)語言調(diào)試控制器的調(diào)試請求,并根據(jù)所述調(diào)試請求的請求內(nèi)容,啟動所述動態(tài)語言調(diào)試器;
所述協(xié)助單元12,用于當(dāng)所述動態(tài)語言調(diào)試器啟動成功后,協(xié)助所述動態(tài)語言調(diào)試器與所述動態(tài)語言調(diào)試控制器建立交互連接。
具體的,所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器1還包括等待單元13,其中,
所述等待單元13,用于等待接收所述動態(tài)語言調(diào)試控制器后續(xù)發(fā)出的調(diào)試請求。
對應(yīng)的,所述動態(tài)語言調(diào)試器2包括:啟動處理單元21和建立連接單元22,其中,
所述啟動處理單元21,用于根據(jù)所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器傳遞的啟動參數(shù),對相應(yīng)的運(yùn)行進(jìn)程進(jìn)行啟動處理;
所述建立連接單元22,用于通過所述動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器的協(xié)助處理,建立與所述動態(tài)語言調(diào)試控制器的交互連接。
對應(yīng)的,所述動態(tài)語言調(diào)試器還包括:接收單元23和獲取單元24,其中,
所述接收單元23,用于與所述動態(tài)語言解釋器建立交互連接,接收所述動態(tài)語言調(diào)試控制器的調(diào)試控制指令,控制所述動態(tài)語言解釋器解釋進(jìn)程的執(zhí)行過程;
所述獲取單元24,用于獲得動態(tài)語言服務(wù)器程序調(diào)試處理進(jìn)程的運(yùn)行上下文,并控制所述動態(tài)語言解釋器解釋進(jìn)程的執(zhí)行過程。
在本發(fā)明的實(shí)施例三中,通過動態(tài)語言調(diào)試控制器在發(fā)起調(diào)試時(shí)會與動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器建立連接,并由動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器根據(jù)動態(tài)語言調(diào)試控制器的請求內(nèi)容啟動動態(tài)語言調(diào)試器,動態(tài)語言調(diào)試器啟動后,動態(tài)語言調(diào)試控制器直接與該動態(tài)語言調(diào)試器建立連接,后續(xù)的調(diào)試過程由動態(tài)語言調(diào)試控制器直接與動態(tài)語言調(diào)試器進(jìn)行交互,動態(tài)語言調(diào)試器負(fù)責(zé)在運(yùn)行環(huán)境上與動態(tài)語言解釋器進(jìn)行交互,控制動態(tài)語言程序的執(zhí)行過程,并獲取被調(diào)試進(jìn)程的上下文。通過將服務(wù)端的動態(tài)語言調(diào)試處理工作分為動態(tài)語言調(diào)試請求監(jiān)聽服務(wù)器和動態(tài)語言調(diào)試器兩部分,可以有效的進(jìn)行實(shí)現(xiàn)解耦,簡化了具體實(shí)現(xiàn)過程,并能有效的增加遠(yuǎn)程調(diào)試系統(tǒng)的穩(wěn)定性,有效的提高大規(guī)模工程軟件采用動態(tài)語言的開發(fā)效率。
本說明書中各個實(shí)施例采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似部分互相參見即可。對于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。