專利名稱:通信系統(tǒng)程序故障檢測(cè)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信系統(tǒng)診斷測(cè)試技術(shù)。尤其涉及通信設(shè)備實(shí)時(shí)運(yùn)行時(shí)出現(xiàn)異常時(shí),對(duì)系統(tǒng)軟件實(shí)時(shí)查找問題提供幫助。
背景技術(shù):
設(shè)備在現(xiàn)場(chǎng)運(yùn)行過程中,如果程序出現(xiàn)異常,一般采用寫記錄文件的方法來記錄一些重要信息幫助查找定位問題。如專利號(hào)為CN 1414711A的中國(guó)專利“一種程序狀態(tài)的故障定位方法”,是通過靜態(tài)記錄程序運(yùn)行狀態(tài)來定位設(shè)備故障。目前這種技術(shù)存在以下缺點(diǎn)由于寫記錄文件的信息是程序員在編程時(shí)就靜態(tài)寫定,不能臨時(shí)更改的,而程序出錯(cuò)不是程序員可預(yù)知的,因此往往造成程序出現(xiàn)異常時(shí),沒有信息記錄,或信息記錄不全。由于通信領(lǐng)域的電信級(jí)設(shè)備,如程控交換機(jī)等,不能隨時(shí)中斷運(yùn)行,來?yè)Q上調(diào)試版本進(jìn)行跟蹤。開發(fā)人員束手無策,給定位問題帶來很大的困難,延長(zhǎng)解決問題的時(shí)間。出現(xiàn)這種狀況的根本原因在于不能根據(jù)異常情況動(dòng)態(tài)定制記錄文件,不能實(shí)時(shí)動(dòng)態(tài)查看程序中一些關(guān)鍵信息的值。
發(fā)明內(nèi)容
本發(fā)明的目的是為了克服目前設(shè)備的程序出異常時(shí),通過靜態(tài)寫子記錄文件來保存出錯(cuò)信息,造成信息不全或根本沒有的弊端,提出一種新的方案,解決現(xiàn)有技術(shù)中存在的不能動(dòng)態(tài)定制異常記錄文件,實(shí)時(shí)查看程序變量值問題。
本發(fā)明所述通信系統(tǒng)程序故障檢測(cè)方法如下1.1生成包括變量信息的正式版本;1.2在正式版本下載到前臺(tái)設(shè)備(例如交換機(jī)的工控機(jī))時(shí),把變量信息從正式版本中分離出來,以數(shù)據(jù)文件的方式保存到存儲(chǔ)器上,這樣系統(tǒng)裝載版本運(yùn)行時(shí),變量信息不會(huì)調(diào)入內(nèi)存;1.3在后臺(tái)(例如交換機(jī)的操作維護(hù)臺(tái))設(shè)定記錄系統(tǒng)異常動(dòng)態(tài)信息的方式;1.4系統(tǒng)異常時(shí),后臺(tái)生成異常記錄文件;1.5分析異常記錄文件信息,確定故障。
上述的通信系統(tǒng)程序故障檢測(cè)方法中,步驟1.1中的生成包括變量信息的文件的方法為在生成發(fā)行版本(所謂發(fā)行版本就是不帶任何調(diào)試信息的程序)時(shí),同時(shí)生成帶全局變量信息的調(diào)試版本,保證調(diào)試版本和發(fā)行版本從全局變量定義上完全一致;所述全局變量信息包括變量名、變量類型等。從調(diào)試版本中,取出所有全局變量的信息,計(jì)算出變量在內(nèi)存中存放的相對(duì)位置,并把這些信息追加到發(fā)行版本的文件尾,生成最終的正式版本。
其步驟1.3中的在后臺(tái)設(shè)定記錄系統(tǒng)異常動(dòng)態(tài)信息的方式是指后臺(tái)異常判斷接口模塊啟動(dòng)時(shí),把存在前臺(tái)設(shè)備的存儲(chǔ)器上的變量信息文件內(nèi)容拷貝到后臺(tái)內(nèi)存中,生成變量樹,算出所有變量的實(shí)時(shí)內(nèi)存地址;在后臺(tái)異常判斷接口模塊中,指定系統(tǒng)異常的判斷條件以及所需記錄的內(nèi)存地址和長(zhǎng)度,發(fā)送到前臺(tái)的異常判斷代理模塊。
其步驟1.4生成異常記錄文件的方法為異常判斷代理模塊根據(jù)指定的判斷條件判斷系統(tǒng)異常是否產(chǎn)生,當(dāng)確定異常產(chǎn)生時(shí),把所需記錄的內(nèi)存地址中的內(nèi)容記錄到存儲(chǔ)器上,或發(fā)送到后臺(tái)接口模塊顯示和保存。
其步驟1.5確定故障的方法可以是,后臺(tái)把該變量的內(nèi)存地址及長(zhǎng)度發(fā)送到前臺(tái)代理模塊,前臺(tái)根據(jù)地址和長(zhǎng)度把內(nèi)存拷貝發(fā)回后臺(tái),查看選定的變量;后臺(tái)接口模塊對(duì)接收到信息分解,根據(jù)變量類型顯示故障。
采用本發(fā)明所述方法,開發(fā)人員在發(fā)現(xiàn)設(shè)備的程序異常時(shí),可以動(dòng)態(tài)定制記錄文件,也可以實(shí)時(shí)查看造成異常的所有關(guān)鍵變量值,迅速確定導(dǎo)致異常的原因。按照該方法根據(jù)系統(tǒng)異常情況,不用更換版本,動(dòng)態(tài)定制記錄文件,把與導(dǎo)致異常的關(guān)鍵信息保存下來,以供分析,迅速確定導(dǎo)致程序異常的原因,對(duì)原先程序的效率和性能沒有任何影響,可以節(jié)省處理時(shí)間,提高異常處理效率。
圖1是本發(fā)明發(fā)行文件的格式示意圖;圖2是本發(fā)明的流程圖;圖3是本發(fā)明的變量信息文件的生成過程示意圖;圖4是本發(fā)明的異常判斷設(shè)定過程示意圖;圖5是本發(fā)明的異常判斷接口模塊工作流程圖;圖6是本發(fā)明的異常判斷代理模塊工作流程圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)技術(shù)方案的實(shí)施作進(jìn)一步的詳細(xì)描述圖1是本發(fā)明發(fā)行文件的格式。
圖2是本發(fā)明的流程圖。
在圖3、圖4中,描述了本系統(tǒng)診斷測(cè)試的方法的工作過程圖3是變量信息文件的生成過程,從調(diào)試版本1中取出變量信息2,添加在正式版本3后,形成發(fā)行文件4,發(fā)行文件4通過后臺(tái)的版本下載程序5拷貝到前臺(tái),由前臺(tái)的版本下載代理6把發(fā)行文件4分離成正式版本3和變量信息文件7。圖4是異常判斷的設(shè)定過程,異常判斷接口模塊9運(yùn)行于后臺(tái),異常判斷代理模塊10運(yùn)行于前臺(tái),異常判斷接口模塊9啟動(dòng)后,由異常判斷代理模塊10把變量信息文件7和已存在的異常判斷設(shè)定11傳到后臺(tái),變量信息文件7轉(zhuǎn)換成變量信息樹8。這樣就對(duì)已存在的異常判斷設(shè)定進(jìn)行清除,或根據(jù)信息樹添加新的異常判斷設(shè)定和直接查看變量的內(nèi)容。
在圖5、圖6中,詳細(xì)描述了本系統(tǒng)診斷測(cè)試的方法的工作流程圖5是異常判斷接口模塊9的工作流程,它接收兩個(gè)方向的消息,一方面是用戶操作消息,如異常判斷設(shè)定,異常判斷清除,變量值顯示等,直接送到前臺(tái)異常判斷代理模塊10;一方面是異常判斷代理模塊10返回的消息,直接顯示或存盤。圖6是異常判斷代理模塊10的工作流程,它接收異常判斷接口模塊9發(fā)來的用戶操作消息。如果為變量值查詢,就從指定的地址開始,拷貝指定長(zhǎng)度的內(nèi)容,送回異常判斷接口模塊9。如果為異常判斷清除,就清除應(yīng)的異常判斷,再把當(dāng)前的異常判斷設(shè)置送到異常判斷接口模塊9。如果為異常判斷設(shè)置,拷貝收到的設(shè)置到緩沖區(qū)中,開始定時(shí)掃描判斷異常是否發(fā)生,如果發(fā)生,把異常記錄信息根據(jù)指定送到異常判斷代理模塊10或直接保存,然后需再判斷異常是否解除,防止異常記錄信息不停發(fā)送或保存。
例如,某通信板CPU用MOTOROLA的8260,采用VXWORKS操作系統(tǒng),用GNU的make編譯所有的源程序。GNU的make運(yùn)行的基礎(chǔ)是一個(gè)編譯連接控制MAKEFILE文件,用來控制編譯哪些源文件,連接哪些模塊,生成什么目標(biāo)文件。異常代理模塊作為一個(gè)獨(dú)立的庫(kù)模塊加入到MAKEFILE中。在源程序的編譯控制選項(xiàng)中,調(diào)試版本加入選項(xiàng)-g,產(chǎn)生詳細(xì)的調(diào)試信息,正式版本不加-g,其它選項(xiàng)完全一樣。生成版本的格式為ELF(EXECUTABLE ANDLINKABLE FORMAT可執(zhí)行連接格式),ELF文件格式很多技術(shù)資料上都有介紹。從調(diào)試版本中取出全局變量的信息,和正式版本一起生成發(fā)行文件,發(fā)行文件的開始4字節(jié)為正式版本的長(zhǎng)度,用于版本下載時(shí)正式版本和變量信息內(nèi)容分離。
發(fā)行文件下載到該通信板上時(shí),根據(jù)文件中的長(zhǎng)度,分離出正式版本和變量信息文件,保存在存儲(chǔ)器上。通信板上電啟動(dòng)時(shí),從存儲(chǔ)器上加載正式版本到內(nèi)存中運(yùn)行。這樣,變量信息對(duì)整個(gè)通信板系統(tǒng)運(yùn)行一點(diǎn)影響也沒有。異常判斷接口模塊作為一個(gè)獨(dú)立的程序運(yùn)行于WINDOWS下,用VC開發(fā)。異常判斷接口模塊啟動(dòng)后,設(shè)定前臺(tái)目標(biāo)的信息,如通信地址,前后臺(tái)通信等待的時(shí)間長(zhǎng)度等,設(shè)定完畢后向前臺(tái)的異常判斷代理模塊發(fā)送消息,請(qǐng)求拷貝變量信息文件,變量信息文件拷貝完畢后,生成變量樹,方便對(duì)變量的查找。異常判斷接口模塊再向異常判斷代理模塊請(qǐng)求已經(jīng)存在的異常判斷設(shè)定。可查閱原先的異常判斷設(shè)定,在這基礎(chǔ)上清除設(shè)定或添加新的設(shè)定。在前臺(tái)申請(qǐng)一定數(shù)目的數(shù)組用于存放異常判斷設(shè)定。清除某設(shè)定就是清除對(duì)應(yīng)數(shù)組的標(biāo)志。添加新的設(shè)定,設(shè)置對(duì)應(yīng)數(shù)組的標(biāo)志,把判斷項(xiàng)(內(nèi)存的地址、長(zhǎng)度、參考判斷內(nèi)容、判斷條件)、記錄信息(內(nèi)存的地址、長(zhǎng)度)和傳送方向拷貝到數(shù)組中,并清除異常發(fā)生標(biāo)志。該通信板程序比較簡(jiǎn)單,但負(fù)荷大,因此異常判斷是放在進(jìn)程中定時(shí)進(jìn)行的。異常判斷代理模塊定時(shí)對(duì)數(shù)組進(jìn)行掃描,標(biāo)志已設(shè)置,則用判斷項(xiàng)中的指定的內(nèi)存地址和長(zhǎng)度,用參考判斷內(nèi)容,進(jìn)行內(nèi)存比較,如果滿足判斷條件,就認(rèn)為異常發(fā)生,設(shè)置異常發(fā)生標(biāo)志,依據(jù)記錄信息按照傳送方向保存內(nèi)容。
權(quán)利要求
1.一種通信系統(tǒng)程序故障檢測(cè)方法,包括1.1生成包括變量信息的正式版本;1.2在正式版本下載到前臺(tái)設(shè)備時(shí),把變量信息從正式版本中分離出來,以數(shù)據(jù)文件的方式保存到存儲(chǔ)器上;1.3在后臺(tái)設(shè)定記錄系統(tǒng)異常動(dòng)態(tài)信息的方式;1.4系統(tǒng)異常時(shí),后臺(tái)生成異常記錄文件;1.5分析異常記錄文件信息,確定故障。
2.權(quán)利要求1所述的通信系統(tǒng)程序故障檢測(cè)方法,其特征在于,所述步驟1.1中的生成包括變量信息的文件的方法為2.1在生成發(fā)行版本時(shí),同時(shí)生成帶全局變量信息的調(diào)試版本,保證調(diào)試版本和發(fā)行版本從全局變量定義上完全一致;2.2從調(diào)試版本中,取出所有全局變量的信息,計(jì)算出變量在內(nèi)存中存放的相對(duì)位置,并把這些信息追加到發(fā)行版本的文件尾,生成最終的正式版本。
3.權(quán)利要求2所述的通信系統(tǒng)程序故障檢測(cè)方法,其特征在于,所述全局變量信息包括變量名、變量類型。
4.權(quán)利要求1所述的通信系統(tǒng)程序故障檢測(cè)方法,其特征在于,所述步驟1.3中的在后臺(tái)設(shè)定記錄系統(tǒng)異常動(dòng)態(tài)信息的方式是指4.1后臺(tái)異常判斷接口模塊啟動(dòng)時(shí),把存在前臺(tái)設(shè)備的存儲(chǔ)器上的變量信息文件內(nèi)容拷貝到后臺(tái)內(nèi)存中,生成變量樹,算出所有變量的實(shí)時(shí)內(nèi)存地址;4.2在后臺(tái)異常判斷接口模塊中,指定系統(tǒng)異常的判斷條件以及所需記錄的內(nèi)存地址和長(zhǎng)度,發(fā)送到前臺(tái)的異常判斷代理模塊。
5.權(quán)利要求1所述的通信系統(tǒng)程序故障檢測(cè)方法,其特征在于,所述步驟1.4生成異常記錄文件的方法為異常判斷代理模塊根據(jù)指定的判斷條件判斷系統(tǒng)異常是否產(chǎn)生,當(dāng)確定異常產(chǎn)生時(shí),把所需記錄的內(nèi)存地址中的內(nèi)容記錄到存儲(chǔ)器上,或發(fā)送到后臺(tái)接口模塊顯示和保存。
6.權(quán)利要求1所述的通信系統(tǒng)程序故障檢測(cè)方法,其特征在于,所述步驟1.5確定故障的方法可以是,后臺(tái)把該變量的內(nèi)存地址及長(zhǎng)度發(fā)送到前臺(tái)代理模塊,前臺(tái)根據(jù)地址和長(zhǎng)度把內(nèi)存拷貝發(fā)回后臺(tái),查看選定的變量;后臺(tái)接口模塊對(duì)接收到信息分解,根據(jù)變量類型顯示故障。
全文摘要
一種通信系統(tǒng)程序故障檢測(cè)方法,包括生成包括變量信息的正式版本;在正式版本下載到前臺(tái)設(shè)備(例如交換機(jī)的工控機(jī))時(shí),把變量信息從正式版本中分離出來,以數(shù)據(jù)文件的方式保存到存儲(chǔ)器上,這樣系統(tǒng)裝載版本運(yùn)行時(shí),變量信息不會(huì)調(diào)入內(nèi)存;在后臺(tái)(例如交換機(jī)的操作維護(hù)臺(tái))設(shè)定記錄系統(tǒng)異常動(dòng)態(tài)信息的方式;系統(tǒng)異常時(shí),后臺(tái)生成異常記錄文件;分析異常記錄文件信息,確定故障。采用本發(fā)明所述方法,可以動(dòng)態(tài)定制記錄文件,也可以實(shí)時(shí)查看造成異常的所有關(guān)鍵變量值,迅速確定導(dǎo)致異常的原因。可以節(jié)省處理時(shí)間,提高異常處理效率。
文檔編號(hào)G06F9/44GK1578202SQ0313999
公開日2005年2月9日 申請(qǐng)日期2003年7月28日 優(yōu)先權(quán)日2003年7月28日
發(fā)明者王新余, 王幸 申請(qǐng)人:中興通訊股份有限公司