專利名稱:一種調(diào)試信息輸出和控制系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機軟件設(shè)計領(lǐng)域,涉及軟件模塊的輔助調(diào)試方法,特別是涉及由多個子系統(tǒng)構(gòu)成的軟件系統(tǒng)的調(diào)試信息的輸出和控制系統(tǒng)及其方法。
背景技術(shù):
在進(jìn)行計算機軟件開發(fā)的過程中,由于設(shè)計上的錯誤或者是人為的錯誤等,在軟件的設(shè)計和編碼過程中經(jīng)常會隱藏很多的錯誤,這些錯誤通常難以被發(fā)現(xiàn)和解決,某些錯誤甚至只有在特定的運行環(huán)境下才會暴露出來。有些軟件系統(tǒng)的運行環(huán)境比較特殊,比如運行在單板上的嵌入式軟件、Windows的NT服務(wù)程序等,難以觀察到軟件的運行情況,當(dāng)錯誤發(fā)生時也不知道是在什么地方、什么時候產(chǎn)生的。隨著技術(shù)的發(fā)展,軟件系統(tǒng)日益龐大和復(fù)雜,一個完整的軟件系統(tǒng)可能由很多個子系統(tǒng)構(gòu)成,系統(tǒng)的內(nèi)部流程和結(jié)構(gòu)非常復(fù)雜,當(dāng)該系統(tǒng)出現(xiàn)故障時,要定位故障的根源也比較麻煩。
為了提高軟件產(chǎn)品的質(zhì)量,需要提供一種手段來幫助發(fā)現(xiàn)這些錯誤。
當(dāng)前普遍采用的一種方法是記錄軟件的運行狀態(tài),軟件在運行過程中輸出調(diào)試信息,當(dāng)出現(xiàn)故障時通過調(diào)試信息來輔助判斷故障發(fā)生的位置。但是這種方法比較適用于單進(jìn)程的系統(tǒng)。進(jìn)程是指計算機上運行的獨立的應(yīng)用程序,一般為構(gòu)成整個軟件系統(tǒng)的一個子系統(tǒng)。對于多進(jìn)程構(gòu)成的軟件系統(tǒng),該方法的缺點是每個進(jìn)程都需要單獨實現(xiàn)調(diào)試信息的輸出和控制功能。為了實現(xiàn)對系統(tǒng)的調(diào)試信息輸出行為進(jìn)行控制,需要對每個進(jìn)程分別進(jìn)行配置和管理。這不但增加了配置和管理的工作量,而且也造成了計算機資源的浪費。
因此需要提供一種調(diào)試信息的輸出和控制系統(tǒng)及其方法,以提高對多進(jìn)程系統(tǒng)的調(diào)試信息輸出的控制功能。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于提供一種調(diào)試信息輸出和控制系統(tǒng)及其方法,用于解決現(xiàn)有技術(shù)適用多進(jìn)程構(gòu)成的軟件系統(tǒng)實現(xiàn)調(diào)試信息的輸出和控制功能所帶來的工作量增加及資源浪費等問題。
為了實現(xiàn)上述目的,本發(fā)明提供了一種調(diào)試信息輸出和控制系統(tǒng),包括調(diào)試信息操作臺、調(diào)試信息輸出控制模塊、至少一個輸出調(diào)試信息的應(yīng)用程序模塊,其中所述調(diào)試信息操作臺用于接收各個所述輸出調(diào)試信息的應(yīng)用程序模塊輸出的調(diào)試信息,提供調(diào)試信息的控制和接收的操作界面;所述調(diào)試信息輸出控制模塊與所述調(diào)試信息操作臺進(jìn)行通訊,用于接受所述調(diào)試信息操作臺的控制并將其發(fā)來的控制信息發(fā)送至各個所述輸出調(diào)試信息的應(yīng)用程序模塊;所述輸出調(diào)試信息的應(yīng)用程序模塊與所述調(diào)試信息輸出控制模塊進(jìn)行通訊,用于輸出調(diào)試信息,并接受所述調(diào)試信息輸出控制模塊對調(diào)試信息輸出的控制。
所述的調(diào)試信息輸出和控制系統(tǒng),其中,所述調(diào)試信息操作臺與所述輸出調(diào)試信息的應(yīng)用程序模塊運行在同一臺主機或不同的主機上。
所述的調(diào)試信息輸出和控制系統(tǒng),其中,各個所述輸出調(diào)試信息的應(yīng)用程序模塊通過調(diào)用一調(diào)試信息輸出接口函數(shù)輸出調(diào)試信息。
所述的調(diào)試信息輸出和控制系統(tǒng),其中,所述調(diào)試信息輸出控制模塊與所述調(diào)試信息操作臺通過可由用戶選擇通過TCP、UDP或者串口等進(jìn)行通訊;所述調(diào)試信息輸出控制模塊與所述輸出調(diào)試信息的應(yīng)用程序模塊通過UDP進(jìn)行通訊。
所述的調(diào)試信息輸出和控制系統(tǒng),其中,所述調(diào)試信息操作臺通過在所述調(diào)試信息操作臺與所述調(diào)試信息輸出控制模塊之間設(shè)定一安全認(rèn)證的接口并在所述調(diào)試信息操作臺上輸入一預(yù)先設(shè)置的用戶信息的方式與所述調(diào)試信息輸出控制模塊建立通訊。
所述的調(diào)試信息輸出和控制系統(tǒng),其中,所述輸出調(diào)試信息的應(yīng)用程序模塊以混合方式或重定向方式的輸出方式輸出調(diào)試信息。
所述的調(diào)試信息輸出和控制系統(tǒng),其中,所述調(diào)試信息輸出控制模塊在初始化時將調(diào)試信息輸出的級別和類別描述信息提供給所述調(diào)試信息操作臺。
所述的調(diào)試信息輸出和控制系統(tǒng),其中,所述輸出調(diào)試信息的應(yīng)用程序模塊在初始化時向所述調(diào)試信息輸出控制模塊發(fā)起注冊消息進(jìn)行注冊;所述輸出調(diào)試信息的應(yīng)用程序模塊在結(jié)束運行時向所述調(diào)試信息輸出控制模塊發(fā)送取消注冊消息。
所述的調(diào)試信息輸出和控制系統(tǒng),其中,所述調(diào)試信息輸出控制模塊收到所述輸出調(diào)試信息的應(yīng)用程序模塊的注冊消息后向所述輸出調(diào)試信息的應(yīng)用程序模塊發(fā)送當(dāng)前的調(diào)試信息輸出的配置信息。
為了實現(xiàn)上述目的,本發(fā)明還提供了一種調(diào)試信息輸出和控制方法,包括如下步驟一調(diào)試信息操作臺設(shè)置的步驟,用于提供調(diào)試信息的控制和接收的操作界面;一調(diào)試信息輸出控制的步驟,用于接收所述調(diào)試信息操作臺發(fā)送的控制信息并接受所述調(diào)試信息操作臺的控制;及一調(diào)試信息輸出的步驟,用于輸出調(diào)試信息,接收控制信息,并根據(jù)所述控制信息控制調(diào)試信息的輸出。
本方法提供的系統(tǒng)及其方法適用于單進(jìn)程/多進(jìn)程組成的計算機軟件系統(tǒng)。尤其是在多進(jìn)程的嵌入式軟件系統(tǒng)下,本發(fā)明提供了一種集中控制軟件系統(tǒng)輸出調(diào)試信息的方法。使用該方法不僅簡化了調(diào)試信息輸出的控制行為,而且提供了多種調(diào)試信息的輸出方式,適用于多種軟件運行環(huán)境,可以方便的監(jiān)測軟件的運行過程和定位軟件運行過程中的故障現(xiàn)象。
以下結(jié)合附圖和具體實施例對本發(fā)明進(jìn)行詳細(xì)描述,但不作為對本發(fā)明的限定。
圖1為調(diào)試信息輸出模塊體系結(jié)構(gòu)圖;圖2為多進(jìn)程模式下的系統(tǒng)結(jié)構(gòu)圖;圖3為單進(jìn)程模式下的系統(tǒng)結(jié)構(gòu)圖。
具體實施例方式
本發(fā)明的目的在于為多進(jìn)程軟件系統(tǒng)提供一種調(diào)試信息的輸出和控制系統(tǒng)及其方法,該系統(tǒng)及其方法也適用于單進(jìn)程的軟件系統(tǒng)。
本發(fā)明的技術(shù)方案如下調(diào)試信息輸出和控制系統(tǒng)由調(diào)試信息操作臺、調(diào)試信息輸出控制模塊、應(yīng)用程序模塊調(diào)試信息輸出接口三個部分組成。
調(diào)試信息操作臺該模塊作為一個單獨的子系統(tǒng)運行,它負(fù)責(zé)接收各個輸出調(diào)試信息的應(yīng)用程序模塊輸出的調(diào)試信息,實現(xiàn)調(diào)試信息的保存、查詢等功能。提供界面對系統(tǒng)的調(diào)試信息輸出行為進(jìn)行統(tǒng)一控制,它與輸出調(diào)試信息的應(yīng)用程序模塊可以運行在不同的主機上。
調(diào)試信息輸出控制模塊該模塊與輸出調(diào)試信息的應(yīng)用程序模塊運行在同一個主機上,如會議電視系統(tǒng)的MCU(Multipoint Control Unit,多點控制單元)設(shè)備、終端設(shè)備等。它與調(diào)試信息操作臺進(jìn)行通訊,接受調(diào)試信息操作臺的控制;另外,它還與各個輸出調(diào)試信息的應(yīng)用程序模塊進(jìn)行通訊,將調(diào)試信息操作臺發(fā)來的控制信息發(fā)送給各個輸出調(diào)試信息的應(yīng)用程序模塊,實現(xiàn)對各個輸出調(diào)試信息的應(yīng)用程序模塊的調(diào)試信息輸出的控制。
輸出調(diào)試信息的應(yīng)用程序模塊及其調(diào)試信息輸出接口該調(diào)試信息輸出接口為輸出調(diào)試信息的接口函數(shù),由該應(yīng)用程序模塊調(diào)用,與調(diào)試信息輸出控制模塊運行在同一臺主機上。應(yīng)用程序模塊調(diào)用該接口函數(shù)輸出本應(yīng)用程序模塊的調(diào)試信息。同時它與調(diào)試信息輸出控制模塊進(jìn)行通訊,接受調(diào)試信息輸出控制模塊對調(diào)試信息輸出行為的控制。
調(diào)試信息的輸出方式分為下面幾種(1)、分散方式調(diào)試信息由各應(yīng)用程序模塊實例通過UDP(User DatagramProtocol,用戶數(shù)據(jù)報協(xié)議)直接發(fā)送給操作臺。這種方式的運行效率最高,但應(yīng)用程序模塊可能會受網(wǎng)絡(luò)影響。
(2)、集中方式應(yīng)用程序模塊先將調(diào)試信息發(fā)送給控制模塊,再通過UDP集中發(fā)送給操作臺。這種方式的效率稍低,但應(yīng)用程序模塊不易受網(wǎng)絡(luò)影響。
(3)、混合方式應(yīng)用程序模塊先將調(diào)試信息發(fā)送給控制模塊,再通過操作臺建立的TCP連接發(fā)送給操作臺。這種方式效率一般,但可靠性高,可以適用于需要穿越防火墻的公網(wǎng)環(huán)境。
(4)、重定向方式調(diào)試信息經(jīng)控制模塊轉(zhuǎn)發(fā)給操作臺,控制模塊將所有與操作臺的通訊重定向到其它的輸出設(shè)備如串口等。這種方式效率最低,但可以適用于沒有網(wǎng)絡(luò)連接的環(huán)境。
本發(fā)明方法同樣適用于單進(jìn)程的軟件系統(tǒng)。對于單進(jìn)程的軟件系統(tǒng),調(diào)試信息輸出系統(tǒng)包含調(diào)試信息操作臺、調(diào)試信息輸出控制模塊,其中調(diào)試信息輸出控制模塊實現(xiàn)了調(diào)試信息的輸出功能。
這種方法簡化了對調(diào)試信息輸出的控制,只需通過操作臺就可以實現(xiàn)對所有應(yīng)用程序模塊的控制。
圖1為調(diào)試信息輸出模塊體系結(jié)構(gòu)圖。調(diào)試信息操作臺10與調(diào)試信息輸出控制模塊30之間的粗箭頭33表示控制信息的傳遞方向,輸出調(diào)試信息的應(yīng)用程序模塊20與調(diào)試信息操作臺10之間的箭頭11表示調(diào)試信息的傳遞方向。輸出調(diào)試信息的應(yīng)用程序模塊20與調(diào)試信息輸出控制模塊30之間的虛箭頭22表示在控制信息從調(diào)試信息輸出控制模塊30到輸出調(diào)試信息的應(yīng)用程序模塊20的傳遞方向以及在混合模式及重定向模式下調(diào)試信息從輸出調(diào)試信息的應(yīng)用程序模塊20到調(diào)試信息輸出控制模塊30的傳遞方向。其中輸出調(diào)試信息的應(yīng)用程序模塊20包含一調(diào)試信息輸出模塊200。
圖2所示為多進(jìn)程模式下的系統(tǒng)結(jié)構(gòu)圖。以一個由三個子系統(tǒng)A、B、C組成的軟件系統(tǒng)為例說明多進(jìn)程模式下的系統(tǒng)結(jié)構(gòu)。
1)、調(diào)試信息操作臺10作為一個單獨的系統(tǒng),運行在PC(PersonalComputer,個人計算機)上。用戶通過調(diào)試信息操作臺10對A、B、C三個子系統(tǒng)應(yīng)用程序模塊20的調(diào)試信息輸出行為進(jìn)行控制。調(diào)試信息操作臺10為調(diào)試信息的控制和接收提供操作界面,提供將調(diào)試信息保存到文件的功能特性,并能從文件中導(dǎo)入調(diào)試信息;提供對調(diào)試信息的分析功能,能夠?qū)φ{(diào)試信息進(jìn)行分類、排序等工作。對A、B、C三個子系統(tǒng)應(yīng)用程序模塊20的調(diào)試信息輸出行為的控制都是通過與調(diào)試信息輸出控制模塊30的通訊來實現(xiàn)的。它首先與調(diào)試信息輸出控制模塊30建立連接,將接收調(diào)試信息的端口號通知調(diào)試信息輸出控制模塊30,接收調(diào)試信息輸出控制模塊30上報的調(diào)試信息輸出的類別和級別描述信息。調(diào)試信息輸出控制模塊30與調(diào)試信息操作臺10之間的通訊定義了安全認(rèn)證的接口,只有在調(diào)試信息操作臺10界面上輸入了預(yù)先設(shè)置好的用戶信息,才能與調(diào)試信息輸出控制模塊30建立連接。
2)、調(diào)試信息輸出控制模塊30。該模塊與調(diào)試信息操作臺10通過TCP進(jìn)行通訊,與A、B、C三個子系統(tǒng)應(yīng)用程序模塊20通過本地UDP Socket(套接字)進(jìn)行通訊,在調(diào)試信息輸出控制模塊30內(nèi)部需要維護一份A、B、C三個子系統(tǒng)應(yīng)用程序模塊20對象的列表。調(diào)試信息輸出控制模塊30作為一個獨立的進(jìn)程在子系統(tǒng)A、B、C所在的主機上運行,如MCU設(shè)備或者是會議電視系統(tǒng)的終端。在調(diào)試信息輸出控制模塊30初始化時,用戶將調(diào)試信息輸出的級別和類別描述信息作為參數(shù)提供給調(diào)試信息輸出控制模塊30,該類別和級別描述信息將在調(diào)試信息操作臺10與調(diào)試信息輸出控制模塊30建立連接時發(fā)送給調(diào)試信息操作臺10。調(diào)試信息輸出控制模塊30接收調(diào)試信息操作臺10的連接請求,建立與調(diào)試信息操作臺10的連接,讀取調(diào)試信息操作臺10改變調(diào)試信息輸出的配置信息,然后遍歷各個應(yīng)用程序模塊20,將當(dāng)前的調(diào)試信息輸出的配置信息發(fā)送給A、B、C三個子系統(tǒng)應(yīng)用程序模塊20。
3)、A、B、C三個子系統(tǒng)為MCU或者會議電視終端的應(yīng)用程序,他們在初始化時需要向調(diào)試信息輸出控制模塊30進(jìn)行注冊,調(diào)試信息輸出控制模塊30收到A、B、C三個子系統(tǒng)應(yīng)用程序模塊20的注冊信息后向該應(yīng)用程序模塊20發(fā)送當(dāng)前的調(diào)試信息輸出的配置信息。該應(yīng)用程序模塊20結(jié)束運行時需向調(diào)試信息輸出控制模塊30發(fā)送取消注冊的消息。在需要輸出調(diào)試信息的地方調(diào)用其調(diào)試信息輸出模塊200的接口函數(shù)。
圖3為單進(jìn)程模式下的系統(tǒng)結(jié)構(gòu)圖。下面介紹單進(jìn)程模式的實施方式單進(jìn)程模式下,只有一個軟件系統(tǒng)A20,包含了調(diào)試信息輸出控制模塊30,如圖3所示。調(diào)試信息輸出控制模塊30與調(diào)試信息操作臺10之間黑箭頭222表示控制信息的傳遞方向,可以通過TCP的方式進(jìn)行通訊,也可以通過串口等方式通訊。調(diào)試信息輸出控制模塊30與調(diào)試信息操作臺10之間的虛箭頭111表示調(diào)試信息的傳遞方向。
本發(fā)明的有益效果本發(fā)明提供了一種調(diào)試信息輸出和控制的系統(tǒng)及其方法,適用單進(jìn)程/多進(jìn)程組成的計算機軟件系統(tǒng)。尤其是在多進(jìn)程的嵌入式軟件系統(tǒng)下,本發(fā)明提供了一種集中控制軟件系統(tǒng)輸出調(diào)試信息的方法。使用該方法不僅簡化了調(diào)試信息輸出的控制行為,而且提供了多種調(diào)試信息的輸出方式,適用于多種軟件運行環(huán)境,可以方便的監(jiān)測軟件的運行過程和定位軟件運行過程中的故障現(xiàn)象。
當(dāng)然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護范圍。
權(quán)利要求
1.一種調(diào)試信息輸出和控制系統(tǒng),其特征在于,包括調(diào)試信息操作臺、調(diào)試信息輸出控制模塊、至少一個輸出調(diào)試信息的應(yīng)用程序模塊,其中所述調(diào)試信息操作臺用于接收各個所述輸出調(diào)試信息的應(yīng)用程序模塊輸出的調(diào)試信息,提供調(diào)試信息的控制和接收的操作界面;所述調(diào)試信息輸出控制模塊與所述調(diào)試信息操作臺進(jìn)行通訊,用于接受所述調(diào)試信息操作臺的控制并將其發(fā)來的控制信息發(fā)送至各個所述輸出調(diào)試信息的應(yīng)用程序模塊;所述輸出調(diào)試信息的應(yīng)用程序模塊與所述調(diào)試信息輸出控制模塊進(jìn)行通訊,用于輸出調(diào)試信息,并接受所述調(diào)試信息輸出控制模塊對調(diào)試信息輸出的控制。
2.根據(jù)權(quán)利要求1所述的調(diào)試信息輸出和控制系統(tǒng),其特征在于,所述調(diào)試信息操作臺與所述輸出調(diào)試信息的應(yīng)用程序模塊運行在同一臺主機或不同的主機上。
3.根據(jù)權(quán)利要求1所述的調(diào)試信息輸出和控制系統(tǒng),其特征在于,各個所述輸出調(diào)試信息的應(yīng)用程序模塊通過調(diào)用一調(diào)試信息輸出接口函數(shù)輸出調(diào)試信息。
4.根據(jù)權(quán)利要求1、2或3所述的調(diào)試信息輸出和控制系統(tǒng),其特征在于,所述調(diào)試信息輸出控制模塊與所述調(diào)試信息操作臺可以根據(jù)用戶的選擇通過TCP、UDP或者串口進(jìn)行通訊;所述調(diào)試信息輸出控制模塊與所述輸出調(diào)試信息的應(yīng)用程序模塊通過UDP Socket進(jìn)行通訊。
5.根據(jù)權(quán)利要求1、2或3所述的調(diào)試信息輸出和控制系統(tǒng),其特征在于,所述調(diào)試信息操作臺通過在所述調(diào)試信息操作臺與所述調(diào)試信息輸出控制模塊之間設(shè)定一安全認(rèn)證的接口并在所述調(diào)試信息操作臺上輸入一預(yù)先設(shè)置的用戶信息的方式與所述調(diào)試信息輸出控制模塊建立通訊。
6.根據(jù)權(quán)利要求1、2或3所述的調(diào)試信息輸出和控制系統(tǒng),其特征在于,所述輸出調(diào)試信息的應(yīng)用程序模塊以混合方式或重定向方式的輸出方式輸出調(diào)試信息。
7.根據(jù)權(quán)利要求1、2或3所述的調(diào)試信息輸出和控制系統(tǒng),其特征在于,所述調(diào)試信息輸出控制模塊在初始化時將調(diào)試信息輸出的級別和類別描述信息提供給所述調(diào)試信息操作臺。
8.根據(jù)權(quán)利要求1、2或3所述的調(diào)試信息輸出和控制系統(tǒng),其特征在于,所述輸出調(diào)試信息的應(yīng)用程序模塊在初始化時向所述調(diào)試信息輸出控制模塊發(fā)起注冊消息進(jìn)行注冊;所述輸出調(diào)試信息的應(yīng)用程序模塊在結(jié)束運行時向所述調(diào)試信息輸出控制模塊發(fā)送取消注冊消息。
9.根據(jù)權(quán)利要求8所述的調(diào)試信息輸出和控制系統(tǒng),其特征在于,所述調(diào)試信息輸出控制模塊收到所述輸出調(diào)試信息的應(yīng)用程序模塊的注冊消息后向所述輸出調(diào)試信息的應(yīng)用程序模塊發(fā)送當(dāng)前的調(diào)試信息輸出的配置信息。
10.一種調(diào)試信息輸出和控制方法,其特征在于,包括如下步驟一調(diào)試信息操作臺設(shè)置的步驟,用于提供調(diào)試信息的控制和接收的操作界面;一調(diào)試信息輸出控制的步驟,用于接收所述調(diào)試信息操作臺發(fā)送的控制信息并接受所述調(diào)試信息操作臺的控制;及一調(diào)試信息輸出的步驟,用于輸出調(diào)試信息,接收控制信息,并根據(jù)所述控制信息控制調(diào)試信息的輸出。
全文摘要
本發(fā)明公開了一種調(diào)試信息輸出和控制系統(tǒng)及其方法,包括調(diào)試信息操作臺、調(diào)試信息輸出控制模塊、至少一個輸出調(diào)試信息的應(yīng)用程序模塊,其中調(diào)試信息操作臺用于接收各個應(yīng)用程序模塊輸出的調(diào)試信息,提供調(diào)試信息的控制和接收的操作界面;調(diào)試信息輸出控制模塊與調(diào)試信息操作臺進(jìn)行通訊,用于接受調(diào)試信息操作臺的控制并將其發(fā)來的控制信息發(fā)送至各個應(yīng)用程序模塊;應(yīng)用程序模塊與調(diào)試信息輸出控制模塊進(jìn)行通訊,用于輸出調(diào)試信息,并接受調(diào)試信息輸出控制模塊對調(diào)試信息輸出的控制。本發(fā)明適用多進(jìn)程軟件系統(tǒng),簡化了控制行為,且能以多種方式輸出調(diào)試信息,并可監(jiān)測軟件運行中的故障現(xiàn)象。
文檔編號H04L29/06GK1920782SQ20051008630
公開日2007年2月28日 申請日期2005年8月26日 優(yōu)先權(quán)日2005年8月26日
發(fā)明者李喜欣, 朱曉斌 申請人:中興通訊股份有限公司