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