本發(fā)明涉及計算機軟件技術(shù)領(lǐng)域,尤其涉及軟件開發(fā)調(diào)試技術(shù)領(lǐng)域,具體是指一種基于智能網(wǎng)關(guān)平臺進行軟件開發(fā)的調(diào)試系統(tǒng)及方法。
背景技術(shù):
目前主流的智能手機系統(tǒng)如Google的android、Apple的iOS和Microsoft的windows phone.都會給開發(fā)者提供一套圖形化的IDE(Integrated Development Environment,集成開發(fā)環(huán)境),其中都有remote debug功能。即通過IDE編寫完應用程序之后,便可以自動打包、安裝和部署。連機調(diào)式直接在IDE圖型化界面上完成,包括單步運行程序,查看變量值,函數(shù)調(diào)用的call stack,都只用點幾下鼠標即可完成。相對于直接使用gdb(GNU Project debugger,一種程序調(diào)試工具),有著代碼查看方便,結(jié)合IDE的代碼跳轉(zhuǎn),查找等功能,使用起來更人性化。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)的缺點,提供了一種能夠?qū)崿F(xiàn)在智能網(wǎng)關(guān)平臺上提供IDE開發(fā)環(huán)境的調(diào)式功能的基于智能網(wǎng)關(guān)平臺進行軟件開發(fā)的調(diào)試系統(tǒng)及方法。
為了實現(xiàn)上述目的,本發(fā)明具有如下構(gòu)成:
該基于智能網(wǎng)關(guān)平臺進行軟件開發(fā)的調(diào)試系統(tǒng),包括:
主機,用于為目標機生成cpk(C Package,C語言開發(fā)的插件程序包)插件,并控制所述的目標機完成調(diào)試;
目標機,用于接收并安裝所述的cpk插件,并對軟件進行調(diào)試。
較佳地,所述的主機包括集成開發(fā)環(huán)境模塊,用于為目標機生成cpk插件,并控制所述的目標機完成調(diào)試,具體包括以下步驟:
(1-1)軟件開發(fā)人員在所述的主機上編譯并編輯info.plugin文件,所述的集成開發(fā)環(huán)境模塊將所述的info.plugin文件打包為cpk插件包;
(1-2)所述的集成開發(fā)環(huán)境模塊向目標機上傳cpk插件包;
(1-3)所述的集成開發(fā)環(huán)境模塊獲取目標機上的進程號和文件名列表;
(1-4)所述的集成開發(fā)環(huán)境模塊向目標機調(diào)式服務程序發(fā)送launch指令,要求目標機通過gdbserver直接啟動cpk插件,或向目標機調(diào)式服務程序發(fā)送attach指令,要求目標機通過已有的Pid((Process Identifier Description,進程描述符,用來代表一個進程,類似于人的身份證號)附加至已經(jīng)啟動的程序。
較佳地,所述的目標機包括調(diào)試服務模塊,用于接收并安裝所述的cpk插件,并對軟件進行調(diào)試,具體包括以下步驟:
(2-1)所述的調(diào)試服務模塊接收并安裝主機發(fā)送的cpk插件包;
(2-2)所述的調(diào)試服務模塊調(diào)式并啟動cpk插件;
(2-3)所述的調(diào)試服務模塊通過ps(一種查看進程運行狀態(tài)信息的命令)獲取目標機器上所有進程的描述符,并通過所述的描述符運行g(shù)dbserver的attach命令;
(2-4)所述的調(diào)試服務模塊卸載安裝的cpk插件。
較佳地,所述的集成開發(fā)環(huán)境模塊為eclipse模塊。
還包括一種通過上述系統(tǒng)基于智能網(wǎng)關(guān)平臺進行軟件開發(fā)的調(diào)試方法,所述的方法包括以下步驟:
(1)主機為目標機生成cpk插件,并控制所述的目標機完成調(diào)試
(2)目標機接收并安裝所述的cpk插件,并對軟件進行調(diào)試。
較佳地,所述的主機包括集成開發(fā)環(huán)境模塊,所述的步驟(1)具體包括以下步驟:
(1-1)軟件開發(fā)人員在所述的主機上編譯并編輯info.plugin文件,所述的集成開發(fā)環(huán)境模塊將所述的info.plugin文件打包為cpk插件包;
(1-2)所述的集成開發(fā)環(huán)境模塊向目標機上傳cpk插件包;
(1-3)所述的集成開發(fā)環(huán)境模塊獲取目標機上的進程號和文件名列表;
(1-4)所述的集成開發(fā)環(huán)境模塊向目標機調(diào)式服務程序發(fā)送launch指令,要求目標機通過gdbserver直接啟動cpk插件,或向目標機調(diào)式服務程序發(fā)送attach指令,要求目標機通過已有的Pid附加至已經(jīng)啟動的程序。
較佳地,所述的目標機包括調(diào)試服務模塊,所述的步驟(2)具體包括以下步驟:
(2-1)所述的調(diào)試服務模塊接收并安裝主機發(fā)送的cpk插件包;
(2-2)所述的調(diào)試服務模塊調(diào)式并啟動cpk插件;
(2-3)所述的調(diào)試服務模塊通過ps獲取目標機器上所有進程的描述符,并通過所述的描述符運行g(shù)dbserver的attach命令;
(2-4)所述的調(diào)試服務模塊卸載安裝的cpk插件。
更佳地,所述的步驟(2-2),具體為:
所述的調(diào)試服務模塊向目標機上的Smd(智能網(wǎng)關(guān)插件網(wǎng)理程序,負責安裝、卸載、升級cpk插件程序,并對插件程序發(fā)送或接收指令)進程發(fā)出通知,Smd進程通過gdbserver啟動所述的cpk插件。
采用了該發(fā)明中的基于智能網(wǎng)關(guān)平臺進行軟件開發(fā)的調(diào)試系統(tǒng)及方法,智能網(wǎng)關(guān)應用插件開發(fā)者提供更方便,快捷的開發(fā)手段和更直觀,易于操作的程序調(diào)式方法,相比直接使用gdb+gdbserver,開發(fā)者直接面對圖形化的操作環(huán)境而不用去記命令行,調(diào)式時更容易查看對應的代碼,降低了開發(fā)者的學習門檻,從市場角度看也有利于智能網(wǎng)關(guān)的推廣,具有廣泛的應用范圍。
附圖說明
圖1為本發(fā)明的基于智能網(wǎng)關(guān)平臺進行軟件開發(fā)的調(diào)試系統(tǒng)的示意圖。
具體實施方式
為了能夠更清楚地描述本發(fā)明的技術(shù)內(nèi)容,下面結(jié)合具體實施例來進行進一步的描述。
該基于智能網(wǎng)關(guān)平臺進行軟件開發(fā)的調(diào)試系統(tǒng),包括:
主機,用于為目標機生成cpk插件,并控制所述的目標機完成調(diào)試;
目標機,用于接收并安裝所述的cpk插件,并對軟件進行調(diào)試。
在一種較佳的實施方式中,所述的主機包括集成開發(fā)環(huán)境模塊,用于為目標機生成cpk插件,并控制所述的目標機完成調(diào)試,具體包括以下步驟:
(1-1)軟件開發(fā)人員在所述的主機上編譯并編輯info.plugin文件,所述的集成開發(fā)環(huán)境模塊將所述的info.plugin文件打包為cpk插件包;
(1-2)所述的集成開發(fā)環(huán)境模塊向目標機上傳cpk插件包;
(1-3)所述的集成開發(fā)環(huán)境模塊獲取目標機上的進程號和文件名列表;
(1-4)所述的集成開發(fā)環(huán)境模塊向目標機調(diào)式服務程序發(fā)送launch指令,要求目標機通過gdbserver直接啟動cpk插件,或向目標機調(diào)式服務程序發(fā)送attach指令,要求目標機通過已有的Pid附加至已經(jīng)啟動的程序。
在一種較佳的實施方式中,所述的目標機包括調(diào)試服務模塊,用于接收并安裝所述的cpk插件,并對軟件進行調(diào)試,具體包括以下步驟:
(2-1)所述的調(diào)試服務模塊接收并安裝主機發(fā)送的cpk插件包;
(2-2)所述的調(diào)試服務模塊調(diào)式并啟動cpk插件;
(2-3)所述的調(diào)試服務模塊通過ps獲取目標機器上所有進程的描述符,并通過所述的描述符運行g(shù)dbserver的attach命令;
(2-4)所述的調(diào)試服務模塊卸載安裝的cpk插件。
在一種較佳的實施方式中,所述的集成開發(fā)環(huán)境模塊為eclipse模塊。
還包括一種通過上述系統(tǒng)基于智能網(wǎng)關(guān)平臺進行軟件開發(fā)的調(diào)試方法,所述的方法包括以下步驟:
(1)主機為目標機生成cpk插件,并控制所述的目標機完成調(diào)試
(2)目標機接收并安裝所述的cpk插件,并對軟件進行調(diào)試。
在一種較佳的實施方式中,所述的主機包括集成開發(fā)環(huán)境模塊,所述的步驟(1)具體包括以下步驟:
(1-1)軟件開發(fā)人員在所述的主機上編譯并編輯info.plugin文件,所述的集成開發(fā)環(huán)境模塊將所述的info.plugin文件打包為cpk插件包;
(1-2)所述的集成開發(fā)環(huán)境模塊向目標機上傳cpk插件包;
(1-3)所述的集成開發(fā)環(huán)境模塊獲取目標機上的進程號和文件名列表;
(1-4)所述的集成開發(fā)環(huán)境模塊向目標機調(diào)式服務程序發(fā)送launch指令,要求目標機通過gdbserver直接啟動cpk插件,或向目標機調(diào)式服務程序發(fā)送attach指令,要求目標機通過已有的Pid附加至已經(jīng)啟動的程序。
在一種較佳的實施方式中,所述的目標機包括調(diào)試服務模塊,所述的步驟(2)具體包括以下步驟:
(2-1)所述的調(diào)試服務模塊接收并安裝主機發(fā)送的cpk插件包;
(2-2)所述的調(diào)試服務模塊調(diào)式并啟動cpk插件;
(2-3)所述的調(diào)試服務模塊通過ps獲取目標機器上所有進程的描述符,并通過所述的描述符運行g(shù)dbserver的attach命令;
(2-4)所述的調(diào)試服務模塊卸載安裝的cpk插件。
在一種更佳的實施方式中,所述的步驟(2-2),具體為:
所述的調(diào)試服務模塊向目標機上的Smd進程發(fā)出通知,Smd進程通過gdbserver啟動所述的cpk插件。
在一個具體的實施方式中,如圖1所示:
一、在target機(即智能網(wǎng)關(guān)設備)上開發(fā)一個調(diào)式服務程序。主要包括以下操作:
1、接收host機(與智能網(wǎng)關(guān)相連的開發(fā)PC機)上eclipse插件發(fā)送的cpk(Combined Public Key,組合公鑰)包,安裝在target機器上;
2、調(diào)式啟動cpk插件。即調(diào)式服務程序向target機上的Smd進程發(fā)出通知,Smd通過gdbserver啟動安裝的cpk程序;
3、通過ps獲取target機器上所有進程的Pid,并能通過指令Pid運行g(shù)dbserver的attach命令;
4、卸載安裝的cpk插件。
二、Host機上的eclipse插件實現(xiàn)以下功能:
1、編譯,編輯info.plugin文件,打包成cpk插件;
2、向target機的調(diào)式服務程序上傳,安裝cpk插件;
3、獲取target機上的進程號和文件名列表;
4、向target機調(diào)式服務程序發(fā)送launch或attach指令,要求target機的調(diào)式服務程序通過gdbserver直接啟動cpk程序,或attach到已有的進程Pid。
上述系統(tǒng)具有以下特點:
1)在智能網(wǎng)關(guān)上實現(xiàn)原本只能在android,windows mobile,ios,window phone等智能手機開發(fā)等地方實現(xiàn)的功能;
2)能過對C語言編寫的插件提供調(diào)式功能;
3)eclipse模塊具備插件的安裝,卸載,調(diào)試和運行功能,且target機能接受這些功能;
4)開發(fā)者所使用的IDE能夠與target機的調(diào)試程序?qū)崿F(xiàn)交互;
5)開發(fā)機器的IDE能夠單步運行。
采用了該發(fā)明中的基于智能網(wǎng)關(guān)平臺進行軟件開發(fā)的調(diào)試系統(tǒng)及方法,智能網(wǎng)關(guān)應用插件開發(fā)者提供更方便,快捷的開發(fā)手段和更直觀,易于操作的程序調(diào)式方法,相比直接使用gdb+gdbserver,開發(fā)者直接面對圖形化的操作環(huán)境而不用去記命令行,調(diào)式時更容易查看對應的代碼,降低了開發(fā)者的學習門檻,從市場角度看也有利于智能網(wǎng)關(guān)的推廣,具有廣泛的應用范圍。
在此說明書中,本發(fā)明已參照其特定的實施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說明書和附圖應被認為是說明性的而非限制性的。