專利名稱:一種軟件錯(cuò)誤碼的傳遞方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實(shí)施例涉及通信技術(shù),尤其涉及一種軟件錯(cuò)誤碼的傳遞方法、裝置及系統(tǒng)。
背景技術(shù):
在軟件設(shè)計(jì)中,通常都會(huì)設(shè)計(jì)模塊或設(shè)計(jì)函數(shù)返回錯(cuò)誤碼,根據(jù)錯(cuò)誤碼來(lái)判斷、定 位軟件故障分支流程。目前,錯(cuò)誤碼的設(shè)計(jì)思路通常有兩類錯(cuò)誤碼連續(xù)傳遞方式和錯(cuò)誤碼間接傳遞方 式。具體來(lái)說(shuō),錯(cuò)誤碼連續(xù)傳遞方式指不改變?cè)煎e(cuò)誤碼而連續(xù)傳遞的方式。如圖1所示, 圖1是現(xiàn)有技術(shù)中錯(cuò)誤碼連續(xù)傳遞方式的方法流程圖。根據(jù)圖1,底層模塊A將錯(cuò)誤碼errA 傳遞給上一層模塊B,這樣錯(cuò)誤碼errA依次傳到頂層模塊,頂層模塊返回錯(cuò)誤碼給外部接 口。錯(cuò)誤碼連續(xù)傳遞方式的優(yōu)點(diǎn)是外部接口可以知道最原始的錯(cuò)誤碼,其不足是外部接口 無(wú)法得知錯(cuò)誤碼的傳遞路徑,且由于errA通常是一類錯(cuò)誤類型,所以外部接口并不能精確 定位故障。錯(cuò)誤碼間接傳遞方式的方式可以參考圖2,圖2是現(xiàn)有技術(shù)中錯(cuò)誤碼間接傳遞方 式的方法流程圖。根據(jù)圖2,錯(cuò)誤碼通過(guò)間接傳遞,外部接口可以知道頂層模塊N的故障分 支。但是由于錯(cuò)誤碼間接傳遞,外部接口不知道除頂層模塊外的其它模塊的錯(cuò)誤碼,且不知 道錯(cuò)誤碼的傳遞路徑,外部接口同樣并不能精確定位故障。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種軟件錯(cuò)誤碼的傳遞方法及裝置,可以確定錯(cuò)誤碼的傳遞路 徑,以便精確的定位故障錯(cuò)誤原因,提高可維護(hù)性。本發(fā)明實(shí)施例提供的一種軟件錯(cuò)誤碼的傳遞方法,包括接收下層模塊發(fā)來(lái)的錯(cuò)誤碼A,錯(cuò)誤碼A是當(dāng)下層模塊有故障分支時(shí)生成的;將自身生成的錯(cuò)誤碼B和所接收到的錯(cuò)誤碼A合成錯(cuò)誤碼AB,將錯(cuò)誤碼AB傳遞給 上層模塊。本發(fā)明實(shí)施例提供的一種軟件錯(cuò)誤碼的傳遞裝置,所述裝置包括接收單元,用于接收下層模塊發(fā)來(lái)的錯(cuò)誤碼A,錯(cuò)誤碼A是當(dāng)下層模塊有故障分支 時(shí)生成的;合成單元,用于將自身生成的錯(cuò)誤碼B和所接收到的錯(cuò)誤碼A合成錯(cuò)誤碼AB ;發(fā)送單元,用于將所述錯(cuò)誤碼AB傳遞給上層模塊。本發(fā)明實(shí)施例提供的一種軟件錯(cuò)誤碼的傳遞系統(tǒng),包括第一模塊,用于生成錯(cuò)誤碼A并發(fā)送出去;所述生成錯(cuò)誤碼A是在第一模塊有故障 分支時(shí)生成的;第二模塊,用于接收所述錯(cuò)誤碼A,并且將自身生成的錯(cuò)誤碼B和所述錯(cuò)誤碼A合 成錯(cuò)誤碼AB,并發(fā)送出去,所述第二模塊是第一模塊的上層模塊。通過(guò)本發(fā)明實(shí)施例提出的軟件錯(cuò)誤碼的傳遞方法、裝置和系統(tǒng),錯(cuò)誤碼在傳遞的 過(guò)程中攜帶各層模塊的故障分支信息,這樣,根據(jù)錯(cuò)誤碼就可以確定錯(cuò)誤碼的傳遞路徑,以
3便精確的定位故障錯(cuò)誤原因,提高可維護(hù)性。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā) 明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根 據(jù)這些附圖獲得其他的附圖。圖1是現(xiàn)有技術(shù)中錯(cuò)誤碼連續(xù)傳遞方式的方法流程圖;圖2是現(xiàn)有技術(shù)中錯(cuò)誤碼間接傳遞方式的方法流程圖;圖3是本發(fā)明實(shí)施例提供的軟件錯(cuò)誤碼的傳遞方法流程圖;圖4是本發(fā)明實(shí)施例提供的軟件錯(cuò)誤碼的傳遞裝置示意圖;圖5是本發(fā)明實(shí)施例提供的軟件錯(cuò)誤碼的傳遞系統(tǒng)示意圖。
具體實(shí)施例方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是 本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明的發(fā)明人經(jīng)過(guò)研究發(fā)現(xiàn),對(duì)于32位的操作系統(tǒng),函數(shù)錯(cuò)誤碼為32bit,這 樣可以充分利用錯(cuò)誤碼來(lái)攜帶更多的信息。例如,如果用8bit來(lái)記錄每一層錯(cuò)誤碼,那么 32bit可記錄4層錯(cuò)誤碼,類推如果用4bit來(lái)記錄每一層的錯(cuò)誤碼,那么32bit可記錄8層 錯(cuò)誤碼,基于此想法,以函數(shù)為單位設(shè)計(jì)錯(cuò)誤碼,函數(shù)調(diào)用時(shí)繼承上一層的錯(cuò)誤碼,將多級(jí) 錯(cuò)誤碼合成在一起。實(shí)施例一本發(fā)明實(shí)施例提供了一種軟件錯(cuò)誤碼的傳遞方法,參見(jiàn)圖3,圖3是本發(fā)明實(shí)施例 提供的軟件錯(cuò)誤碼的傳遞方法流程圖;該方法包括302 接收下層模塊發(fā)來(lái)的錯(cuò)誤碼A,錯(cuò)誤碼A是當(dāng)下層模塊有故障分支時(shí)生成 的;304 將自身生成的錯(cuò)誤碼B和所接收到的錯(cuò)誤碼A合成錯(cuò)誤碼AB,將錯(cuò)誤碼AB傳 遞給上層模塊;如何合成錯(cuò)誤碼AB的具體實(shí)現(xiàn)方式本發(fā)明不做限定。示例一,以4bit來(lái)記錄每一層錯(cuò)誤碼,當(dāng)收到下層模塊發(fā)來(lái)的錯(cuò)誤碼A時(shí),將錯(cuò)誤 碼A左移4位,將自身生成的錯(cuò)誤碼B放在最低4位,合成錯(cuò)誤碼AB ;構(gòu)建錯(cuò)誤碼具體可實(shí) 現(xiàn)如下#define BUILD_ERR_NUM(ulErrNoAdd, ulErrNoOld)\((ulErrNoOld << 4) | (ulErrNoAdd & OXf))示例二,以4bit來(lái)記錄每一層錯(cuò)誤碼,每層最多只能記15個(gè)類型的錯(cuò)誤碼,可用 以下方法可擴(kuò)展到255個(gè)類型的錯(cuò)誤碼。如果錯(cuò)誤碼小于15個(gè)類型仍用4bit記錄,如果 錯(cuò)誤碼大于15個(gè)類型則用12bit記錄,其中高4bit為0,低8bit為錯(cuò)誤碼。
構(gòu)建錯(cuò)誤碼具體可實(shí)現(xiàn)如下#define BUILD_ERR_NUM(uIErrNoAdd, ulErrNoOld)\((ulErrNoOld << 16) ? ((ulErrNoOld << 4) | ulErrNoAdd) \ ((ulErrNoOld < < 12) | (ulErrNoAss < < 4)))這樣,當(dāng)自身生成的錯(cuò)誤碼B大于15個(gè)類型,則將錯(cuò)誤碼A左移12位,錯(cuò)誤碼B 放在最低12位,即最低12位中,高4bit為0,低Sbit為錯(cuò)誤碼,合成錯(cuò)誤碼AB。相應(yīng)地,上層模塊將自身生成的錯(cuò)誤碼C和所接收到的錯(cuò)誤碼AB合成錯(cuò)誤碼ABC, 將錯(cuò)誤碼ABC傳遞給更上層模塊;依此類推,頂層模塊N將自身生成的錯(cuò)誤碼N和所接收到的ABC...合成錯(cuò)誤碼 ABC... N傳遞給外部接口。當(dāng)外部接口進(jìn)行錯(cuò)誤碼解析時(shí),最低位的錯(cuò)誤碼為頂層錯(cuò)誤碼;例如結(jié)合示例一進(jìn)行說(shuō)明,對(duì)于32位的操作系統(tǒng)來(lái)說(shuō),如果用4bit來(lái)記錄每一層的 錯(cuò)誤碼,那么32bit可記錄8層錯(cuò)誤碼,這樣當(dāng)錯(cuò)誤碼為0001 0010 00110100 0101 0110 0111 1000時(shí),則1000為最頂層錯(cuò)誤碼,0001為最底層錯(cuò)誤碼。結(jié)合示例二進(jìn)行說(shuō)明,對(duì)于32位的操作系統(tǒng),當(dāng)錯(cuò)誤碼為0001 0000 10111100 0000 1101 1110 1111時(shí),1111為最頂層錯(cuò)誤碼,0001為底層錯(cuò)誤碼,對(duì)于錯(cuò)誤碼的類型大 于15個(gè)時(shí),則錯(cuò)誤碼用12bit記錄,具體來(lái)說(shuō)高4bit為0,低8bit為錯(cuò)誤碼,也就是說(shuō)0000 1011 1100和0000 1101 1111分別為中間二層的錯(cuò)誤碼,這樣,雖然示例二的方法只記錄 了 4層錯(cuò)誤碼,但是每層錯(cuò)誤碼可以記錄的錯(cuò)誤碼類型的個(gè)數(shù)可以達(dá)到255個(gè),而且由于最 頂層錯(cuò)誤碼位于最低位,這樣可以確保最頂層以及相鄰最頂層的錯(cuò)誤碼可以被獲得??梢?jiàn),通過(guò)本發(fā)明實(shí)施例提供的軟件錯(cuò)誤碼的傳遞方法,錯(cuò)誤碼在傳遞的過(guò)程中 攜帶各層模塊的故障分支信息,這樣,根據(jù)錯(cuò)誤碼就可以確定錯(cuò)誤碼的傳遞路徑,以便精確 的定位故障錯(cuò)誤原因,提高可維護(hù)性。實(shí)施例二 本發(fā)明實(shí)施例還提供了一種軟件錯(cuò)誤碼的傳遞裝置,參見(jiàn)圖4,圖4是本發(fā)明實(shí)施 例提供的軟件錯(cuò)誤碼的傳遞裝置示意圖,該裝置包括接收單元402 用于接收下層模塊發(fā)來(lái)的錯(cuò)誤碼A,錯(cuò)誤碼A是當(dāng)下層模塊有故障 分支時(shí)生成的;合成單元404 用于將自身生成的錯(cuò)誤碼B和所接收到的錯(cuò)誤碼A合成錯(cuò)誤碼AB ;發(fā)送單元406,用于將所述錯(cuò)誤碼AB傳遞給上層模塊;如何合成錯(cuò)誤碼AB的具體實(shí)現(xiàn)方式本發(fā)明不做限定。示例一,以4bit來(lái)記錄每一層錯(cuò)誤碼,這樣,合成單元具體包括將所接收到的錯(cuò) 誤碼A左移4位,將自身生成的錯(cuò)誤碼B放在最低4位,合成錯(cuò)誤碼AB ;示例二,以4bit來(lái)記錄每一層錯(cuò)誤碼,每層最多只能記15個(gè)類型的錯(cuò)誤碼,可用 以下方法可擴(kuò)展到255個(gè)類型的錯(cuò)誤碼。如果錯(cuò)誤碼小于15個(gè)類型仍用4bit記錄,如果 錯(cuò)誤碼大于15個(gè)類型則用12bit記錄,其中高4bit為0,低Sbit為錯(cuò)誤碼。這樣,合成單元具體包括當(dāng)自身生成的錯(cuò)誤碼B大于15個(gè)類型,將錯(cuò)誤碼A左移 12位,錯(cuò)誤碼B放在最低12位,其中最低12位中,高4bit為0,低Sbit為錯(cuò)誤碼,合成錯(cuò) 誤碼AB。
可見(jiàn),通過(guò)本發(fā)明實(shí)施例提供的軟件錯(cuò)誤碼的傳遞裝置,錯(cuò)誤碼在傳遞的過(guò)程中 攜帶各層模塊的故障分支信息,這樣,根據(jù)錯(cuò)誤碼就可以確定錯(cuò)誤碼的傳遞路徑,以便精確 的定位故障錯(cuò)誤原因,提高可維護(hù)性。實(shí)施例三本發(fā)明實(shí)施例還提供了一種軟件錯(cuò)誤碼的傳遞系統(tǒng),參見(jiàn)圖5,圖5是本發(fā)明實(shí)施 例提供的軟件錯(cuò)誤碼的傳遞系統(tǒng)示意圖,該系統(tǒng)包括第一模塊502 用于生成錯(cuò)誤碼A并發(fā)送出去;所述生成錯(cuò)誤碼A是在第一模塊有 故障分支時(shí)生成的;第二模塊504,用于接收所述錯(cuò)誤碼A,并且將自身生成的錯(cuò)誤碼B和所述錯(cuò)誤碼 A合成錯(cuò)誤碼AB,并發(fā)送出去,所述第二模塊是第一模塊的上層模塊;在本發(fā)明具體實(shí)現(xiàn)時(shí),所述第二模塊具體包括接收單元,用于接收第一模塊發(fā)來(lái)的錯(cuò)誤碼A ;合成單元,用于將自身生成的錯(cuò)誤碼B和所接收到的錯(cuò)誤碼A合成錯(cuò)誤碼AB ;發(fā)送單元,用于將所述錯(cuò)誤碼AB發(fā)送出去。如何合成錯(cuò)誤碼AB的具體實(shí)現(xiàn)方式本發(fā)明不做限定。示例一,以4bit來(lái)記錄每一層錯(cuò)誤碼,這樣,合成單元具體包括將所接收到的錯(cuò) 誤碼A左移4位,將自身生成的錯(cuò)誤碼B放在最低4位,合成錯(cuò)誤碼AB ;示例二,以4bit來(lái)記錄每一層錯(cuò)誤碼,每層最多只能記15個(gè)類型的錯(cuò)誤碼,可用 以下方法可擴(kuò)展到255個(gè)類型的錯(cuò)誤碼。如果錯(cuò)誤碼小于15個(gè)類型仍用4bit記錄,如果 錯(cuò)誤碼大于15個(gè)類型則用12bit記錄,其中高4bit為0,低Sbit為錯(cuò)誤碼。這樣,合成單元具體包括當(dāng)自身生成的錯(cuò)誤碼B大于15個(gè)類型,將錯(cuò)誤碼A左移 12位,錯(cuò)誤碼B放在最低12位,其中最低12位中,高4bit為0,低Sbit為錯(cuò)誤碼,合成錯(cuò) 誤碼AB。相應(yīng)地,所述系統(tǒng)還包括第三模塊,用于接收所述錯(cuò)誤碼AB,并且將自身生成的錯(cuò) 誤碼C和所述錯(cuò)誤碼AB合成錯(cuò)誤碼ABC,并發(fā)送出去,所述第三模塊是第二模塊的上層模 塊;;依次類推,所述系統(tǒng)還進(jìn)一步頂層模塊,用于將自身生成的錯(cuò)誤碼N和所接收到 的ABC...合成錯(cuò)誤碼ABC. . . N傳遞給外部接口,所述ABC...指所述頂層模塊的相鄰下層 模塊生成的錯(cuò)誤碼??梢?jiàn),通過(guò)本發(fā)明實(shí)施例提供的軟件錯(cuò)誤碼的傳遞系統(tǒng),錯(cuò)誤碼在傳遞的過(guò)程中 攜帶各層模塊的故障分支信息,這樣,根據(jù)錯(cuò)誤碼就可以確定錯(cuò)誤碼的傳遞路徑,以便精確 的定位故障錯(cuò)誤原因,提高可維護(hù)性。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò) 程序指令相關(guān)的硬件來(lái)完成,前述程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在 執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者光 盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡 管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然 可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替
6換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精 神和范圍。
權(quán)利要求
一種軟件錯(cuò)誤碼的傳遞方法,其特征在于,包括接收下層模塊發(fā)來(lái)的錯(cuò)誤碼A,錯(cuò)誤碼A是當(dāng)下層模塊有故障分支時(shí)生成的;將自身生成的錯(cuò)誤碼B和所接收到的錯(cuò)誤碼A合成錯(cuò)誤碼AB,將錯(cuò)誤碼AB傳遞給上層模塊。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將自身生成的錯(cuò)誤碼B和所接收到的 錯(cuò)誤碼A合成錯(cuò)誤碼AB具體包括將錯(cuò)誤碼A左移4位,將自身生成的錯(cuò)誤碼B放在最低 4位,合成錯(cuò)誤碼AB。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將自身生成的錯(cuò)誤碼B和所接收到 的錯(cuò)誤碼A合成錯(cuò)誤碼AB具體包括當(dāng)自身生成的錯(cuò)誤碼B大于15個(gè)類型,將錯(cuò)誤碼A左 移12位,錯(cuò)誤碼B放在最低12位,其中在最低12位中,高4bit為0,低8bit為錯(cuò)誤碼,合 成錯(cuò)誤碼AB。
4.一種軟件錯(cuò)誤碼的傳遞裝置,其特征在于,所述裝置包括接收單元(402),用于接收下層模塊發(fā)來(lái)的錯(cuò)誤碼A,錯(cuò)誤碼A是當(dāng)下層模塊有故障分 支時(shí)生成的;合成單元(404),用于將自身生成的錯(cuò)誤碼B和所接收到的錯(cuò)誤碼A合成錯(cuò)誤碼AB ;發(fā)送單元(406),用于將所述錯(cuò)誤碼AB傳遞給上層模塊。
5.根據(jù)權(quán)利要求4所述的裝置,其特征在于,所述合成單元具體包括將所接收到的錯(cuò) 誤碼A左移4位,將自身生成的錯(cuò)誤碼B放在最低4位,合成錯(cuò)誤碼AB。
6.根據(jù)權(quán)利要求4所述的裝置,其特征在于,所述合成單元具體包括當(dāng)自身生成的錯(cuò) 誤碼B大于15個(gè)類型,將錯(cuò)誤碼A左移12位,錯(cuò)誤碼B放在最低12位,其中最低12位中, 高4bit為0,低8bit為錯(cuò)誤碼,合成錯(cuò)誤碼AB。
7.一種軟件錯(cuò)誤碼的傳遞系統(tǒng),其特征在于,包括第一模塊(502),用于生成錯(cuò)誤碼A并發(fā)送出去;所述生成錯(cuò)誤碼A是在第一模塊有故 障分支時(shí)生成的;第二模塊(504),用于接收所述錯(cuò)誤碼A,并且將自身生成的錯(cuò)誤碼B和所述錯(cuò)誤碼A 合成錯(cuò)誤碼AB,并發(fā)送出去,所述第二模塊是第一模塊的上層模塊。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述第二模塊具體包括接收單元,用于接收第一模塊發(fā)來(lái)的錯(cuò)誤碼A ;合成單元,用于將自身生成的錯(cuò)誤碼B和所接收到的錯(cuò)誤碼A合成錯(cuò)誤碼AB ;發(fā)送單元,用于將所述錯(cuò)誤碼AB發(fā)送出去。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述合成單元具體包括將所接收到的錯(cuò) 誤碼A左移4位,將自身生成的錯(cuò)誤碼B放在最低4位,合成錯(cuò)誤碼AB。
10.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述合成單元具體包括當(dāng)自身生成的 錯(cuò)誤碼B大于15個(gè)類型,將錯(cuò)誤碼A左移12位,錯(cuò)誤碼B放在最低12位,其中最低12位 中,高4bit為0,低8bit為錯(cuò)誤碼,合成錯(cuò)誤碼AB。
全文摘要
本發(fā)明實(shí)施例提供了軟件錯(cuò)誤碼的傳遞方法,該方法包括接收下層模塊發(fā)來(lái)的錯(cuò)誤碼A,錯(cuò)誤碼A是當(dāng)下層模塊有故障分支時(shí)生成的;將自身生成的錯(cuò)誤碼B和所接收到的錯(cuò)誤碼A合成錯(cuò)誤碼AB,將錯(cuò)誤碼AB傳遞給上層模塊。此外,本發(fā)明實(shí)施例還提供了相應(yīng)的軟件錯(cuò)誤碼的傳遞裝置和系統(tǒng)。通過(guò)本發(fā)明實(shí)施例提出的軟件錯(cuò)誤碼的傳遞方法、裝置和系統(tǒng),錯(cuò)誤碼在傳遞的過(guò)程中攜帶各層模塊的故障分支信息,這樣,根據(jù)錯(cuò)誤碼就可以確定錯(cuò)誤碼的傳遞路徑,以便精確的定位故障錯(cuò)誤原因,提高可維護(hù)性。
文檔編號(hào)G06F11/36GK101980176SQ201010528930
公開(kāi)日2011年2月23日 申請(qǐng)日期2010年10月29日 優(yōu)先權(quán)日2010年10月29日
發(fā)明者李波 申請(qǐng)人:華為數(shù)字技術(shù)有限公司