專利名稱:虛斷點(diǎn)腳本調(diào)試方法
虛斷點(diǎn)腳本調(diào)試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種腳本調(diào)試方法,特別涉及一種虛斷點(diǎn)腳本調(diào)試方法。
背景技術(shù):
在游戲服務(wù)器中,LUA腳本被普遍使用,用以支持更多的關(guān)卡任務(wù)設(shè)計(jì),提高游戲可玩性。在調(diào)試LUA腳本時(shí),都需要設(shè)置多個(gè)斷點(diǎn),開(kāi)發(fā)人員必須逐個(gè)跟蹤斷點(diǎn),如果一個(gè)循環(huán)進(jìn)入100次,要查看這100次的值,就必須在斷點(diǎn)操作100次恢復(fù)斷點(diǎn),否則調(diào)試過(guò)程一直處于暫停狀態(tài),非常浪費(fèi)時(shí)間,另一方面還存在協(xié)同工作困難的問(wèn)題,即同一時(shí)間同一個(gè)程序只能單人調(diào)試,當(dāng)多人同時(shí)使用同一個(gè)服務(wù)器時(shí),每個(gè)人編輯完腳本,上傳到服務(wù)器后,必須調(diào)試。調(diào)試時(shí)如果某個(gè)人設(shè)置了斷點(diǎn),其他人就必須等該斷點(diǎn)被取消后才能工作,否則就只能一直處于等待狀態(tài),浪費(fèi)大量的時(shí)間。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問(wèn)題,在于提供一種虛斷點(diǎn)調(diào)試方法,其解決了無(wú)法協(xié)同工作問(wèn)題以及斷點(diǎn)必須人員在場(chǎng)逐個(gè)跟蹤,浪費(fèi)大量的時(shí)間。本發(fā)明是這樣實(shí)現(xiàn)的一種虛斷點(diǎn)腳本調(diào)試方法,包括如下步驟步驟I、服務(wù)器上開(kāi)放一個(gè)用于監(jiān)聽(tīng)客戶端請(qǐng)求、遠(yuǎn)程調(diào)試腳本的端口,且在服務(wù)器啟動(dòng)時(shí)自動(dòng)加載一動(dòng)態(tài)鏈接庫(kù)DLL,所述動(dòng)態(tài)鏈接庫(kù)DLL通過(guò)所述端口監(jiān)聽(tīng)客戶端的網(wǎng)絡(luò)請(qǐng)求;將待調(diào)試的腳本上傳至服務(wù)器;步驟2、在客戶端的腳本編輯器上增加一插件,通過(guò)該插件設(shè)置屬性,所述屬性包括增加的斷點(diǎn)、取消的斷點(diǎn),是否單步執(zhí)行以及設(shè)置腳本執(zhí)行到每個(gè)斷點(diǎn)后是否立即暫停,然后將設(shè)置好的屬性傳遞至所述動(dòng)態(tài)鏈接庫(kù)DLL ;步驟3、要進(jìn)行腳本調(diào)試的客戶端發(fā)出腳本調(diào)試請(qǐng)求;步驟4、服務(wù)器端的動(dòng)態(tài)鏈接庫(kù)DLL通過(guò)所述端口收到來(lái)自腳本調(diào)試客戶端的請(qǐng)求,動(dòng)態(tài)鏈接庫(kù)DLL根據(jù)請(qǐng)求調(diào)用LUA內(nèi)置的調(diào)試器,執(zhí)行請(qǐng)求,當(dāng)執(zhí)行到斷點(diǎn)時(shí),根據(jù)設(shè)置的屬性判斷是否立即暫停,若是,服務(wù)器端暫停執(zhí)行腳本,則服務(wù)器上的程序也隨之被暫停,服務(wù)器把數(shù)據(jù)回傳至腳本調(diào)試客戶端,腳本調(diào)試客戶端接收并顯示該數(shù)據(jù),當(dāng)腳本調(diào)試客戶端請(qǐng)求繼續(xù)執(zhí)行時(shí),服務(wù)器端才開(kāi)始執(zhí)行腳本;若否,執(zhí)行虛斷點(diǎn)調(diào)試模式,具體為服務(wù)器端執(zhí)行到斷點(diǎn),腳本執(zhí)行不暫停,僅把數(shù)據(jù)回傳至腳本調(diào)試客戶端,腳本調(diào)試客戶端記錄該數(shù)據(jù),由于腳本執(zhí)行不暫停,服務(wù)器上的程序仍正常運(yùn)行,所以能實(shí)現(xiàn)多人調(diào)試腳本,且無(wú)需人員看守腳本調(diào)試過(guò)程,在腳本調(diào)試客戶端界面上隨時(shí)能查看到每次執(zhí)行到虛斷點(diǎn)時(shí)的數(shù)據(jù),同時(shí)也不會(huì)干擾到使用同一個(gè)服務(wù)器調(diào)試腳本的其他人,實(shí)現(xiàn)多人分別調(diào)試自己的腳本。進(jìn)一步地,所述腳本編輯器為Not印ad++文本腳本編輯器。進(jìn)一步地,所述步驟4中的數(shù)據(jù)具體為變量、參數(shù)、函數(shù)名以及調(diào)用棧。
本發(fā)明具有如下優(yōu)點(diǎn)本發(fā)明的虛斷點(diǎn)調(diào)試方法,通過(guò)給腳本編輯器和服務(wù)器分別增加插件和動(dòng)態(tài)鏈接庫(kù)DLL,開(kāi)發(fā)人員不用老盯著腳本調(diào)試過(guò)程回傳的數(shù)據(jù),執(zhí)行過(guò)程不用一次次恢復(fù)斷點(diǎn),節(jié)約時(shí)間,減少不必要消耗的精力;同時(shí),還可以實(shí)現(xiàn)協(xié)同工作,一個(gè)服務(wù)器多個(gè)人同時(shí)調(diào)試,通過(guò)客戶端查看變量,節(jié)約成本,是一種快速有效的腳本調(diào)試方法。
具體實(shí)施方式一種虛斷點(diǎn)腳本調(diào)試方法,包括如下步驟步驟I、服務(wù)器上開(kāi)放一個(gè)用于監(jiān)聽(tīng)客戶端請(qǐng)求、遠(yuǎn)程調(diào)試腳本的端口,且在服務(wù)器啟動(dòng)時(shí)自動(dòng)加載一動(dòng)態(tài)鏈接庫(kù)DLL,所述動(dòng)態(tài)鏈接庫(kù)DLL通過(guò)所述端口監(jiān)聽(tīng)客戶端的網(wǎng)絡(luò)請(qǐng)求;將待調(diào)試的腳本上傳至服務(wù)器;步驟2、在客戶端的腳本編輯器上增加一插件,通過(guò)該插件設(shè)置屬性,所述屬性包括增加的斷點(diǎn)、取消的斷點(diǎn),是否單步執(zhí)行以及設(shè)置腳本執(zhí)行到每個(gè)斷點(diǎn)后是否立即暫停,然后將設(shè)置好的屬性傳遞至所述動(dòng)態(tài)鏈接庫(kù)DLL ;所述腳本編輯器為Notepad++文本腳本編輯器;步驟3、要進(jìn)行腳本調(diào)試的客戶端發(fā)出腳本調(diào)試請(qǐng)求;步驟4、服務(wù)器端的動(dòng)態(tài)鏈接庫(kù)DLL通過(guò)所述端口收到來(lái)自腳本調(diào)試客戶端的請(qǐng)求,動(dòng)態(tài)鏈接庫(kù)DLL根據(jù)請(qǐng)求調(diào)用LUA內(nèi)置的調(diào)試器,執(zhí)行請(qǐng)求,當(dāng)執(zhí)行到斷點(diǎn)時(shí),根據(jù)設(shè)置的屬性判斷是否立即暫停,若是,服務(wù)器端暫停執(zhí)行腳本,則服務(wù)器上的程序也隨之被暫停,服務(wù)器把數(shù)據(jù)回傳至腳本調(diào)試客戶端,腳本調(diào)試客戶端記錄該數(shù)據(jù),當(dāng)腳本調(diào)試客戶端請(qǐng)求繼續(xù)執(zhí)行時(shí),服務(wù)器端才開(kāi)始執(zhí)行腳本;若否,執(zhí)行虛斷點(diǎn)調(diào)試模式,具體為服務(wù)器端執(zhí)行到斷點(diǎn),腳本執(zhí)行不暫停,僅把數(shù)據(jù)回傳至腳本調(diào)試客戶端,腳本調(diào)試客戶端接收并 顯示該數(shù)據(jù),所述數(shù)據(jù)包括變量、參數(shù)、函數(shù)名以及調(diào)用棧。由于腳本執(zhí)行不暫停,服務(wù)器上的程序仍正常運(yùn)行,所以能實(shí)現(xiàn)多人調(diào)試腳本,且無(wú)需人員看守腳本調(diào)試過(guò)程,在腳本調(diào)試客戶端界面上隨時(shí)能查看到每次執(zhí)行到虛斷點(diǎn)時(shí)的數(shù)據(jù),同時(shí)也不會(huì)干擾到使用同一個(gè)服務(wù)器調(diào)試腳本的其他人,實(shí)現(xiàn)多人分別調(diào)試自己的腳本。本發(fā)明的虛斷點(diǎn)調(diào)試方法,通過(guò)給腳本編輯器和服務(wù)器分別增加插件和動(dòng)態(tài)鏈接庫(kù)DLL,開(kāi)發(fā)人員不用老盯著腳本調(diào)試過(guò)程回傳的數(shù)據(jù),執(zhí)行過(guò)程不用一次次恢復(fù)斷點(diǎn),節(jié)約時(shí)間,減少不必要消耗的精力;同時(shí),還可以實(shí)現(xiàn)協(xié)同工作,一個(gè)服務(wù)器多個(gè)人同時(shí)調(diào)試,通過(guò)客戶端查看變量,節(jié)約成本,是一種快速有效的腳本調(diào)試方法。雖然以上描述了本發(fā)明的具體實(shí)施方式
,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,我們所描述的具體的實(shí)施例只是說(shuō)明性的,而不是用于對(duì)本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當(dāng)涵蓋在本發(fā)明的權(quán)利要求所保護(hù)的范圍內(nèi)。
權(quán)利要求
1.一種虛斷點(diǎn)腳本調(diào)試方法,其特征在于包括如下步驟 步驟I、服務(wù)器上開(kāi)放一個(gè)用于監(jiān)聽(tīng)客戶端請(qǐng)求、遠(yuǎn)程調(diào)試腳本的端口,且在服務(wù)器啟動(dòng)時(shí)自動(dòng)加載一動(dòng)態(tài)鏈接庫(kù)DLL,所述動(dòng)態(tài)鏈接庫(kù)DLL通過(guò)所述端口監(jiān)聽(tīng)客戶端的網(wǎng)絡(luò)請(qǐng)求;將待調(diào)試的腳本上傳至服務(wù)器; 步驟2、在客戶端的腳本編輯器上增加一插件,通過(guò)該插件設(shè)置屬性,所述屬性包括增加的斷點(diǎn)、取消的斷點(diǎn),是否單步執(zhí)行以及設(shè)置腳本執(zhí)行到每個(gè)斷點(diǎn)后是否立即暫停,然后將設(shè)置好的屬性傳遞至所述動(dòng)態(tài)鏈接庫(kù)DLL ; 步驟3、要進(jìn)行腳本調(diào)試的客戶端發(fā)出腳本調(diào)試請(qǐng)求; 步驟4、服務(wù)器端的動(dòng)態(tài)鏈接庫(kù)DLL通過(guò)所述端口收到來(lái)自腳本調(diào)試客戶端的請(qǐng)求,動(dòng)態(tài)鏈接庫(kù)DLL根據(jù)請(qǐng)求調(diào)用LUA內(nèi)置的調(diào)試器,執(zhí)行請(qǐng)求,當(dāng)執(zhí)行到斷點(diǎn)時(shí),根據(jù)設(shè)置的屬性判斷是否立即暫停,若是,服務(wù)器端暫停執(zhí)行腳本,則服務(wù)器上的程序也隨之被暫停,月艮務(wù)器把數(shù)據(jù)回傳至腳本調(diào)試客戶端,腳本調(diào)試客戶端記錄該數(shù)據(jù),當(dāng)腳本調(diào)試客戶端請(qǐng)求繼續(xù)執(zhí)行時(shí),服務(wù)器端才開(kāi)始執(zhí)行腳本;若否,執(zhí)行虛斷點(diǎn)調(diào)試模式,具體為服務(wù)器端執(zhí)行到斷點(diǎn),腳本執(zhí)行不暫停,僅把數(shù)據(jù)回傳至腳本調(diào)試客戶端,腳本調(diào)試客戶端接收并顯示該數(shù)據(jù),由于腳本執(zhí)行不暫停,服務(wù)器上的程序仍正常運(yùn)行,所以能實(shí)現(xiàn)多人調(diào)試腳本,且無(wú)需人員看守腳本調(diào)試過(guò)程,在腳本調(diào)試客戶端界面上隨時(shí)能查看到每次執(zhí)行到虛斷點(diǎn)時(shí)的數(shù)據(jù),同時(shí)也不會(huì)干擾到使用同一個(gè)服務(wù)器調(diào)試腳本的其他人,實(shí)現(xiàn)多人分別調(diào)試自己的腳本。
2.根據(jù)權(quán)利要求I所述的虛斷點(diǎn)腳本調(diào)試方法,其特征在于所述腳本編輯器為Notepad++文本腳本編輯器。
3.根據(jù)權(quán)利要求I所述的虛斷點(diǎn)腳本調(diào)試方法,其特征在于所述步驟4中的數(shù)據(jù)具體為變量、參數(shù)、函數(shù)名以及調(diào)用棧。
全文摘要
本發(fā)明提供一種虛斷點(diǎn)腳本調(diào)試方法,首先在服務(wù)器上開(kāi)放一個(gè)端口,且自動(dòng)加載一動(dòng)態(tài)鏈接庫(kù)DLL;接著在客戶端的腳本編輯器上增加一插件,通過(guò)該插件設(shè)置屬性,然后將設(shè)置好的屬性傳遞至所述動(dòng)態(tài)鏈接庫(kù)DLL;當(dāng)腳本調(diào)試客戶端發(fā)出腳本調(diào)試請(qǐng)求;動(dòng)態(tài)鏈接庫(kù)DLL根據(jù)請(qǐng)求調(diào)用LUA內(nèi)置的調(diào)試器,執(zhí)行請(qǐng)求,當(dāng)執(zhí)行到斷點(diǎn)時(shí),根據(jù)設(shè)置的屬性判斷是否立即暫停,若是,服務(wù)器端暫停執(zhí)行腳本,若否,執(zhí)行虛斷點(diǎn)調(diào)試模式。本發(fā)明通過(guò)給腳本編輯器和服務(wù)器分別增加插件和動(dòng)態(tài)鏈接庫(kù)DLL,開(kāi)發(fā)人員不用老盯著腳本調(diào)試過(guò)程回傳的數(shù)據(jù),執(zhí)行過(guò)程不用一次次恢復(fù)斷點(diǎn),節(jié)約時(shí)間,同時(shí),還可以實(shí)現(xiàn)協(xié)同工作,節(jié)約成本,是一種快速有效的腳本調(diào)試方法。
文檔編號(hào)G06F11/36GK102981957SQ20121050701
公開(kāi)日2013年3月20日 申請(qǐng)日期2012年11月30日 優(yōu)先權(quán)日2012年11月30日
發(fā)明者徐碧泉, 劉德建, 陳宏展, 陳文旺 申請(qǐng)人:福建天晴數(shù)碼有限公司