在線(xiàn)調(diào)試方法
【專(zhuān)利摘要】本發(fā)明涉及一種在線(xiàn)調(diào)試方法,由服務(wù)器對(duì)客戶(hù)端應(yīng)用程序進(jìn)行調(diào)試的在線(xiàn)調(diào)試,服務(wù)器至少運(yùn)行有第一進(jìn)程,客戶(hù)端具有唯一的終端標(biāo)識(shí),第一進(jìn)程通過(guò)網(wǎng)絡(luò)調(diào)用控制客戶(hù)端上應(yīng)用程序的運(yùn)行,網(wǎng)絡(luò)調(diào)用對(duì)應(yīng)于客戶(hù)端的終端標(biāo)識(shí),該方法包括如下步驟:確定待調(diào)試客戶(hù)端;第一進(jìn)程停止對(duì)應(yīng)于待調(diào)試客戶(hù)端終端標(biāo)識(shí)的第一網(wǎng)絡(luò)調(diào)用;新建第二進(jìn)程,第二進(jìn)程以對(duì)應(yīng)于待調(diào)試客戶(hù)端終端標(biāo)識(shí)的第二網(wǎng)絡(luò)調(diào)用調(diào)試待調(diào)試客戶(hù)端上應(yīng)用程序。其在對(duì)部分客戶(hù)端上應(yīng)用程序進(jìn)行線(xiàn)上調(diào)試的同時(shí),不影響其他客戶(hù)端上應(yīng)用程序的正常運(yùn)行,從而調(diào)試效率較高,有利于整個(gè)系統(tǒng)的持續(xù)穩(wěn)定運(yùn)行。
【專(zhuān)利說(shuō)明】在線(xiàn)調(diào)試方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)應(yīng)用開(kāi)發(fā)領(lǐng)域,更具體地,涉及一種在線(xiàn)調(diào)試方法。
【背景技術(shù)】
[0002] 現(xiàn)今在通信領(lǐng)域的很多具體應(yīng)用中,都存在著服務(wù)器與客戶(hù)端通信以控制客戶(hù)端 上應(yīng)用程序的運(yùn)行這種模式。原先,對(duì)客戶(hù)端上應(yīng)用程序的調(diào)試往往需要在線(xiàn)下進(jìn)行,即先 停止應(yīng)用程序的在線(xiàn)運(yùn)行,然后在客戶(hù)端模擬出服務(wù)器發(fā)出的各種控制指令,以進(jìn)行調(diào)試 工作。這種線(xiàn)下調(diào)試的方法往往難以再現(xiàn)應(yīng)用程序線(xiàn)上運(yùn)行中出現(xiàn)的一些意想不到的情 況,從而調(diào)試效率低下。
[0003] 現(xiàn)有技術(shù)中出現(xiàn)了一些線(xiàn)上調(diào)試客戶(hù)端應(yīng)用程序的方法,可在服務(wù)器端對(duì)客戶(hù)端 上的應(yīng)用程序進(jìn)行調(diào)試,但在進(jìn)行線(xiàn)上調(diào)試時(shí),由于服務(wù)器通常與多個(gè)客戶(hù)端同時(shí)通信,若 服務(wù)器端進(jìn)入調(diào)試模式時(shí),其他不需調(diào)試的客戶(hù)端都將無(wú)法以正常模式運(yùn)行,從而使整個(gè) 系統(tǒng)運(yùn)行效率低下。
[0004] 因此,研發(fā)出一種服務(wù)器對(duì)部分客戶(hù)端上應(yīng)用程序進(jìn)行線(xiàn)上調(diào)試的同時(shí),不影響 其他客戶(hù)端上應(yīng)用程序正常運(yùn)行的調(diào)試方法,是本發(fā)明需要解決的技術(shù)問(wèn)題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于提供一種在線(xiàn)調(diào)試方法,其在服務(wù)器調(diào)試部分客戶(hù)端上應(yīng)用程 序的同時(shí),不影響其他客戶(hù)端上應(yīng)用程序的正常運(yùn)行。
[0006] 為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案如下:
[0007] -種由服務(wù)器對(duì)客戶(hù)端應(yīng)用程序進(jìn)行調(diào)試的在線(xiàn)調(diào)試方法,服務(wù)器至少運(yùn)行有第 一進(jìn)程,客戶(hù)端具有唯一的終端標(biāo)識(shí),第一進(jìn)程通過(guò)網(wǎng)絡(luò)調(diào)用控制客戶(hù)端上應(yīng)用程序的運(yùn) 行,網(wǎng)絡(luò)調(diào)用對(duì)應(yīng)于客戶(hù)端的終端標(biāo)識(shí),該方法包括如下步驟:a)、確定待調(diào)試客戶(hù)端;b)、 第一進(jìn)程停止對(duì)應(yīng)于待調(diào)試客戶(hù)端終端標(biāo)識(shí)的第一網(wǎng)絡(luò)調(diào)用;c)、新建第二進(jìn)程,第二進(jìn)程 以對(duì)應(yīng)于待調(diào)試客戶(hù)端終端標(biāo)識(shí)的第二網(wǎng)絡(luò)調(diào)用調(diào)試待調(diào)試客戶(hù)端上應(yīng)用程序。
[0008] 優(yōu)選地,步驟c具體包括:cl)、新建第二進(jìn)程,釋放第一網(wǎng)絡(luò)調(diào)用占用的資源,為 第二網(wǎng)絡(luò)調(diào)用分配資源;以及c2)、第二進(jìn)程以第二網(wǎng)絡(luò)調(diào)用調(diào)試待調(diào)試客戶(hù)端上應(yīng)用程 序。
[0009] 優(yōu)選地,步驟C)之后還包括:d)、終止第二進(jìn)程,釋放第二網(wǎng)絡(luò)調(diào)用占用的資源。 [0010] 優(yōu)選地,步驟d)之后還包括:e)、為第一網(wǎng)絡(luò)調(diào)用分配資源,第一進(jìn)程恢復(fù)第一網(wǎng) 絡(luò)調(diào)用。
[0011] 本發(fā)明提供的在線(xiàn)調(diào)試方法,在由服務(wù)器對(duì)部分客戶(hù)端上應(yīng)用程序進(jìn)行線(xiàn)上調(diào)試 的同時(shí),不影響其他客戶(hù)端上應(yīng)用程序的正常運(yùn)行,從而調(diào)試效率較高,有利于整個(gè)系統(tǒng)的 持續(xù)穩(wěn)定運(yùn)行。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0012] 圖1示出本發(fā)明第一實(shí)施例的在線(xiàn)調(diào)試方法的流程圖;
[0013] 圖2示出本發(fā)明第二實(shí)施例的在線(xiàn)調(diào)試方法的流程圖。
【具體實(shí)施方式】
[0014] 下面結(jié)合附圖,對(duì)本發(fā)明的【具體實(shí)施方式】作進(jìn)一步的詳細(xì)說(shuō)明。
[0015] 需要說(shuō)明的是,在本發(fā)明的任一實(shí)施例中,服務(wù)器與多個(gè)客戶(hù)端通信,服務(wù)器上至 少運(yùn)行有第一進(jìn)程通過(guò)網(wǎng)絡(luò)調(diào)用控制每個(gè)客戶(hù)端上應(yīng)用程序的運(yùn)行,每個(gè)客戶(hù)端具有唯一 的終端標(biāo)識(shí),網(wǎng)絡(luò)調(diào)用對(duì)應(yīng)于客戶(hù)端的終端標(biāo)識(shí)。第一進(jìn)程表示服務(wù)器端控制客戶(hù)端應(yīng)用 程序正常運(yùn)行的進(jìn)程,其以第一網(wǎng)絡(luò)調(diào)用指示待調(diào)試客戶(hù)端的某個(gè)對(duì)象進(jìn)行某種行為;第 二進(jìn)程表示服務(wù)器端對(duì)客戶(hù)端應(yīng)用程序進(jìn)行調(diào)試所用的進(jìn)程,其以第二網(wǎng)絡(luò)調(diào)用指示待調(diào) 試客戶(hù)端的某個(gè)對(duì)象進(jìn)行某種行為。第一網(wǎng)絡(luò)調(diào)用與第二網(wǎng)絡(luò)調(diào)用對(duì)應(yīng)于相同的待調(diào)試客 戶(hù)端終端標(biāo)識(shí),但分別由第一進(jìn)程和第二進(jìn)程所實(shí)施。
[0016] 如圖1所示,本發(fā)明第一實(shí)施例的在線(xiàn)調(diào)試方法包括如下步驟:
[0017] 步驟S11 :服務(wù)器確定待調(diào)試客戶(hù)端。
[0018] 具體地,服務(wù)器通過(guò)獲得一個(gè)或多個(gè)客戶(hù)端的終端標(biāo)識(shí)來(lái)確定一個(gè)或多個(gè)待調(diào)試 客戶(hù)端,其可以如下三種方式中的任一種進(jìn)行,也可以它們的組合方式進(jìn)行:
[0019] 客戶(hù)端向服務(wù)器發(fā)送一調(diào)試請(qǐng)求,該調(diào)試請(qǐng)求攜帶客戶(hù)端的終端標(biāo)識(shí),服務(wù)器收 到調(diào)試請(qǐng)求后確定該客戶(hù)端為待調(diào)試客戶(hù)端;
[0020] 或者,客戶(hù)端與服務(wù)器進(jìn)行通信并定時(shí)發(fā)送一運(yùn)行狀態(tài)報(bào)告,該運(yùn)行狀態(tài)報(bào)告攜 帶客戶(hù)端的終端標(biāo)識(shí);若服務(wù)器根據(jù)運(yùn)行狀態(tài)報(bào)告判斷該客戶(hù)端處于異常狀態(tài),即確定該 客戶(hù)端為待調(diào)試客戶(hù)端;
[0021] 又或者,服務(wù)器中存儲(chǔ)一客戶(hù)端標(biāo)識(shí)符列表,服務(wù)器按該客戶(hù)端標(biāo)識(shí)符列表每次 將至少一個(gè)客戶(hù)端設(shè)定為待調(diào)試客戶(hù)端。
[0022] 步驟S12 :第一進(jìn)程停止對(duì)應(yīng)于待調(diào)試客戶(hù)端終端標(biāo)識(shí)的第一網(wǎng)絡(luò)調(diào)用。
[0023] 具體地,待調(diào)試客戶(hù)端將與服務(wù)器在調(diào)試模式下通信,為避免第一網(wǎng)絡(luò)調(diào)用的客 戶(hù)端對(duì)象與調(diào)試模式下第二網(wǎng)絡(luò)調(diào)用的對(duì)象相同進(jìn)而產(chǎn)生訪(fǎng)問(wèn)沖突,第一進(jìn)程需要停止對(duì) 應(yīng)于待調(diào)試客戶(hù)端終端標(biāo)識(shí)的第一網(wǎng)絡(luò)調(diào)用。例如,網(wǎng)絡(luò)調(diào)用的對(duì)象以網(wǎng)絡(luò)句柄來(lái)表征,則 在調(diào)試開(kāi)始前,第一進(jìn)程應(yīng)釋放與待調(diào)試客戶(hù)端關(guān)聯(lián)的各網(wǎng)絡(luò)句柄。
[0024] 步驟S13 :服務(wù)器端新建第二進(jìn)程,第二進(jìn)程以對(duì)應(yīng)于待調(diào)試客戶(hù)端終端標(biāo)識(shí)的 第二網(wǎng)絡(luò)調(diào)用調(diào)試客戶(hù)端上應(yīng)用程序。
[0025] 具體地,在服務(wù)器端新建調(diào)試用的第二進(jìn)程,第二進(jìn)程以對(duì)應(yīng)于待調(diào)試客戶(hù)端終 端標(biāo)識(shí)的第二網(wǎng)絡(luò)調(diào)用控制待調(diào)試客戶(hù)端上應(yīng)用程序運(yùn)行于調(diào)試模式下,以發(fā)現(xiàn)應(yīng)用程序 中存在的bug或異常。
[0026] 本領(lǐng)域技術(shù)人員理解,在調(diào)試模式下,重現(xiàn)正常運(yùn)行中出現(xiàn)的錯(cuò)誤是調(diào)試的主要 手段之一。即正常運(yùn)行時(shí),因客戶(hù)端某個(gè)對(duì)象根據(jù)服務(wù)器端網(wǎng)絡(luò)調(diào)用而進(jìn)行某個(gè)行為并出 錯(cuò)時(shí),在調(diào)試模式下也應(yīng)由客戶(hù)端同一對(duì)象根據(jù)服務(wù)器端網(wǎng)絡(luò)調(diào)用進(jìn)行同樣的行為以重現(xiàn) 錯(cuò)誤。
[0027] 因此,進(jìn)一步地,第二網(wǎng)絡(luò)調(diào)用的對(duì)象與第一網(wǎng)絡(luò)調(diào)用的對(duì)象相同。
[0028] 進(jìn)一步地,第二網(wǎng)絡(luò)調(diào)用的對(duì)象與第一網(wǎng)絡(luò)調(diào)用的對(duì)象進(jìn)行相同的行為。
[0029] 該實(shí)施例實(shí)現(xiàn)了在由服務(wù)器對(duì)部分客戶(hù)端上應(yīng)用程序進(jìn)行線(xiàn)上調(diào)試的同時(shí),不影 響其他客戶(hù)端上應(yīng)用程序的正常運(yùn)行。
[0030] 如圖2所示,本發(fā)明第二實(shí)施例的在線(xiàn)調(diào)試方法包括如下步驟:
[0031] S21 :服務(wù)器確定待調(diào)試客戶(hù)端。
[0032] 具體地,其可通過(guò)如下三種方式中的任一種或它們的組合方式而具體實(shí)施:
[0033] 客戶(hù)端向服務(wù)器發(fā)送一調(diào)試請(qǐng)求,該調(diào)試請(qǐng)求攜帶客戶(hù)端的終端標(biāo)識(shí),服務(wù)器收 到調(diào)試請(qǐng)求后確定該客戶(hù)端為待調(diào)試客戶(hù)端;
[0034] 或者,客戶(hù)端與服務(wù)器進(jìn)行通信并定時(shí)發(fā)送一運(yùn)行狀態(tài)報(bào)告,該運(yùn)行狀態(tài)報(bào)告攜 帶客戶(hù)端的終端標(biāo)識(shí);若服務(wù)器根據(jù)運(yùn)行狀態(tài)報(bào)告判斷該客戶(hù)端處于異常狀態(tài),即確定該 客戶(hù)端為待調(diào)試客戶(hù)端;
[0035] 又或者,服務(wù)器中存儲(chǔ)一客戶(hù)端標(biāo)識(shí)符列表,服務(wù)器按該客戶(hù)端標(biāo)識(shí)符列表每次 將至少一個(gè)客戶(hù)端設(shè)定為待調(diào)試客戶(hù)端。
[0036] S22 :第一進(jìn)程停止對(duì)應(yīng)于待調(diào)試客戶(hù)端終端標(biāo)識(shí)的第一網(wǎng)絡(luò)調(diào)用。
[0037] 為避免第一網(wǎng)絡(luò)調(diào)用的客戶(hù)端對(duì)象與調(diào)試模式下第二網(wǎng)絡(luò)調(diào)用的對(duì)象相同進(jìn)而 產(chǎn)生訪(fǎng)問(wèn)沖突,第一進(jìn)程需要停止對(duì)應(yīng)于待調(diào)試客戶(hù)端終端標(biāo)識(shí)的第一網(wǎng)絡(luò)調(diào)用,此時(shí),第 一進(jìn)程處于掛起狀態(tài),并沒(méi)有終止。
[0038] S23:服務(wù)器端新建第二進(jìn)程,釋放第一網(wǎng)絡(luò)調(diào)用占用的資源,并為第二網(wǎng)絡(luò)調(diào)用 分配資源。
[0039] 具體地,為使第二進(jìn)程獲得足夠的資源以便進(jìn)行調(diào)試工作,服務(wù)器端釋放第一網(wǎng) 絡(luò)調(diào)用占用的資源,再為第二網(wǎng)絡(luò)調(diào)用分配資源。
[0040] S24 :第二進(jìn)程以第二網(wǎng)絡(luò)調(diào)用調(diào)試客戶(hù)端上應(yīng)用程序。
[0041] 具體地,第二進(jìn)程以對(duì)應(yīng)于待調(diào)試客戶(hù)端終端標(biāo)識(shí)的第二網(wǎng)絡(luò)調(diào)用控制待調(diào)試客 戶(hù)端上應(yīng)用程序運(yùn)行于調(diào)試模式下。
[0042] 優(yōu)選情況下,第二網(wǎng)絡(luò)調(diào)用的對(duì)象與第一網(wǎng)絡(luò)調(diào)用的對(duì)象相同;第二網(wǎng)絡(luò)調(diào)用的 對(duì)象與第一網(wǎng)絡(luò)調(diào)用的對(duì)象進(jìn)行相同的行為;以試圖在調(diào)試模式下重現(xiàn)客戶(hù)端應(yīng)用程序正 常運(yùn)行時(shí)出現(xiàn)的錯(cuò)誤。
[0043] S25 :服務(wù)器終止第二進(jìn)程,釋放第二網(wǎng)絡(luò)調(diào)用占用的資源。
[0044] 具體地,在調(diào)試完成后,服務(wù)器終止第二進(jìn)程,并釋放第二網(wǎng)絡(luò)調(diào)用占用的資源。
[0045] S26:為第一網(wǎng)絡(luò)調(diào)用分配資源,第一進(jìn)程恢復(fù)第一網(wǎng)絡(luò)調(diào)用。
[0046] 具體地,服務(wù)器為第一網(wǎng)絡(luò)調(diào)用重新分配資源,服務(wù)器與已完成調(diào)試的客戶(hù)端繼 續(xù)通信,第一進(jìn)程恢復(fù)對(duì)客戶(hù)端的第一網(wǎng)絡(luò)調(diào)用,即第一進(jìn)程控制客戶(hù)端應(yīng)用程序運(yùn)行于 正常模式下。
[0047] 本領(lǐng)域技術(shù)人員理解,⑶B (GNUsymbolicdebugger,簡(jiǎn)稱(chēng)為⑶B)調(diào)試器為一款帶 有圖形化界面的調(diào)試工具,在調(diào)試一個(gè)程序過(guò)程中,可以讓程序在調(diào)試者希望的地方停下, 此時(shí)可以查看變量、寄存器、內(nèi)存及堆棧。更進(jìn)一步地,還可以修改變量及內(nèi)存值。
[0048] 根據(jù)本發(fā)明的上述實(shí)施例,進(jìn)一步地,服務(wù)器上安裝有一⑶B調(diào)試器,在步驟S24 中,以GDB調(diào)試器掛載第二進(jìn)程,第二進(jìn)程以第二網(wǎng)絡(luò)調(diào)用使待調(diào)試客戶(hù)端上某個(gè)對(duì)象進(jìn) 行某種行為,從而實(shí)現(xiàn)對(duì)應(yīng)用程序的調(diào)試。
[〇〇49] 以上所述的僅為本發(fā)明的優(yōu)選實(shí)施例,所述實(shí)施例并非用以限制本發(fā)明的專(zhuān)利保 護(hù)范圍,因此凡是運(yùn)用本發(fā)明的說(shuō)明書(shū)及附圖內(nèi)容所作的等同結(jié)構(gòu)變化,同理均應(yīng)包含在 本發(fā)明的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1. 一種由服務(wù)器對(duì)客戶(hù)端應(yīng)用程序進(jìn)行調(diào)試的在線(xiàn)調(diào)試方法,所述服務(wù)器至少運(yùn)行有 第一進(jìn)程,所述客戶(hù)端具有唯一的終端標(biāo)識(shí),所述第一進(jìn)程通過(guò)網(wǎng)絡(luò)調(diào)用控制所述客戶(hù)端 上應(yīng)用程序的運(yùn)行,所述網(wǎng)絡(luò)調(diào)用對(duì)應(yīng)于所述客戶(hù)端的終端標(biāo)識(shí),該方法包括如下步驟: a) 、確定待調(diào)試客戶(hù)端; b) 、所述第一進(jìn)程停止對(duì)應(yīng)于所述待調(diào)試客戶(hù)端終端標(biāo)識(shí)的第一網(wǎng)絡(luò)調(diào)用; c) 、新建第二進(jìn)程,所述第二進(jìn)程以對(duì)應(yīng)于所述待調(diào)試客戶(hù)端終端標(biāo)識(shí)的第二網(wǎng)絡(luò)調(diào) 用調(diào)試所述待調(diào)試客戶(hù)端上應(yīng)用程序。
2. 如權(quán)利要求1所述的方法,其特征在于,所述步驟c具體包括: cl)、新建所述第二進(jìn)程,釋放所述第一網(wǎng)絡(luò)調(diào)用占用的資源,為所述第二網(wǎng)絡(luò)調(diào)用分 配資源;以及 c2)、所述第二進(jìn)程以所述第二網(wǎng)絡(luò)調(diào)用調(diào)試所述待調(diào)試客戶(hù)端上應(yīng)用程序。
3. 如權(quán)利要求2所述的方法,其特征在于,在所述步驟c)之后還包括: d) 、終止所述第二進(jìn)程,釋放所述第二網(wǎng)絡(luò)調(diào)用占用的資源。
4. 如權(quán)利要求3所述的方法,其特征在于,在所述步驟d)之后還包括: e) 、為所述第一網(wǎng)絡(luò)調(diào)用分配資源,所述第一進(jìn)程恢復(fù)所述第一網(wǎng)絡(luò)調(diào)用。
5. 如權(quán)利要求4所述的方法,其特征在于,所述步驟a)具體包括:所述客戶(hù)端向所述 服務(wù)器發(fā)送一調(diào)試請(qǐng)求,所述調(diào)試請(qǐng)求攜帶所述客戶(hù)端的終端標(biāo)識(shí),所述服務(wù)器確定所述 客戶(hù)端為所述待調(diào)試客戶(hù)端。
6. 如權(quán)利要求4所述的方法,其特征在于,所述步驟a)具體包括:所述客戶(hù)端與所述 服務(wù)器進(jìn)行通信并定時(shí)發(fā)送一運(yùn)行狀態(tài)報(bào)告,所述運(yùn)行狀態(tài)報(bào)告攜帶所述客戶(hù)端的終端標(biāo) 識(shí);若所述服務(wù)器根據(jù)所述運(yùn)行狀態(tài)報(bào)告判斷所述客戶(hù)端處于異常狀態(tài),所述服務(wù)器確定 所述客戶(hù)端為所述待調(diào)試客戶(hù)端。
7. 如權(quán)利要求4所述的方法,其特征在于,所述步驟a)具體包括:所述服務(wù)器中存儲(chǔ) 一客戶(hù)端標(biāo)識(shí)符列表,所述服務(wù)器按所述客戶(hù)端標(biāo)識(shí)符列表每次將至少一個(gè)所述客戶(hù)端設(shè) 定為所述待調(diào)試客戶(hù)端。
8. 如權(quán)利要求2至7中任一項(xiàng)所述的方法,其特征在于,所述服務(wù)器上安裝有一 GDB調(diào) 試器,在所述步驟c2)中,以所述GDB調(diào)試器掛載所述第二進(jìn)程,所述第二進(jìn)程以所述第二 網(wǎng)絡(luò)調(diào)用調(diào)試所述待調(diào)試客戶(hù)端上應(yīng)用程序。
9. 如權(quán)利要求1至7中任一項(xiàng)所述的方法,其特征在于,所述第一網(wǎng)絡(luò)調(diào)用的對(duì)象與所 述第二網(wǎng)絡(luò)調(diào)用的對(duì)象相同。
10. 如權(quán)利要求9所述的方法,其特征在于,所述第二網(wǎng)絡(luò)調(diào)用的對(duì)象與所述第一網(wǎng)絡(luò) 調(diào)用的對(duì)象進(jìn)行相同的行為。
【文檔編號(hào)】G06F11/36GK104102575SQ201310124421
【公開(kāi)日】2014年10月15日 申請(qǐng)日期:2013年4月11日 優(yōu)先權(quán)日:2013年4月11日
【發(fā)明者】邵誠(chéng) 申請(qǐng)人:上海心動(dòng)企業(yè)發(fā)展有限公司