[發(fā)明專利]一種尋找軟件錯(cuò)誤的方法及系統(tǒng)無效
| 申請(qǐng)?zhí)枺?/td> | 200810239891.0 | 申請(qǐng)日: | 2008-12-19 |
| 公開(公告)號(hào): | CN101425038A | 公開(公告)日: | 2009-05-06 |
| 發(fā)明(設(shè)計(jì))人: | 游明琦 | 申請(qǐng)(專利權(quán))人: | 北京中星微電子有限公司 |
| 主分類號(hào): | G06F11/36 | 分類號(hào): | G06F11/36 |
| 代理公司: | 北京安信方達(dá)知識(shí)產(chǎn)權(quán)代理有限公司 | 代理人: | 龍 洪;霍育棟 |
| 地址: | 100083北京市*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 尋找 軟件 錯(cuò)誤 方法 系統(tǒng) | ||
技術(shù)領(lǐng)域
本發(fā)明涉及一種尋找軟件錯(cuò)誤的方法及系統(tǒng),尤其涉及一種在嵌入式系統(tǒng)中尋找軟件全局變量錯(cuò)誤的方法及系統(tǒng)。
背景技術(shù)
隨著嵌入式CPU的日益強(qiáng)大,嵌入式系統(tǒng)也越來越復(fù)雜,當(dāng)然,在復(fù)雜的系統(tǒng)里,軟件的錯(cuò)誤也可能很多,如果沒有有力的尋找軟件錯(cuò)誤的方法,這些錯(cuò)誤將嚴(yán)重的影響產(chǎn)品質(zhì)量,影響公司的形象;本文所描述的就是一種嵌入式軟件尋找軟件錯(cuò)誤的方法。
嵌入式軟件要運(yùn)行,必須在相應(yīng)CPU的編譯器下編譯,產(chǎn)生的代碼包括代碼段(RO)、堆棧段(Stack)和全局變量(RW和ZI)。圖1示出了嵌入式軟件中的內(nèi)存分配方式,其中:
RO表示代碼段,這里放置的是執(zhí)行代碼,只能讀不能寫;
Stack表示堆棧段,存儲(chǔ)的是執(zhí)行代碼里中斷程序調(diào)用的返回地址和局部變量;
RW和ZI都表示的是全局變量,這些數(shù)據(jù)將一直占著內(nèi)存,為代碼執(zhí)行服務(wù)。
一般,軟件執(zhí)行的正確性除了要求RO段代碼邏輯的正確性外,還要求stack,RW和ZI里的數(shù)據(jù)都是正確的,其中全局變量出錯(cuò)導(dǎo)致軟件錯(cuò)誤在所有嵌入式軟件錯(cuò)誤中占有很大的比重。現(xiàn)在普遍的做法就是通過增加測(cè)試和軟件模擬的方法,還沒有一種能夠方便快捷地尋找全局變量錯(cuò)誤的方法。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種尋找軟件錯(cuò)誤的方法及系統(tǒng),可以方便快捷地尋找到全局變量的錯(cuò)誤。
為了解決上述問題,本發(fā)明尋找軟件錯(cuò)誤的方法正是根據(jù)嵌入式軟件內(nèi)存方式的特點(diǎn)在全局變量?jī)?nèi)存去查找軟件錯(cuò)誤的方法,該方法也適用于采用其他將全局變量保存在內(nèi)存中的系統(tǒng)。
本發(fā)明提供的尋找軟件錯(cuò)誤的方法,包括:
在執(zhí)行軟件的出錯(cuò)步驟之前和之后,主機(jī)分別從運(yùn)行所述軟件的系統(tǒng)或模擬系統(tǒng)中獲取全局變量的數(shù)值并保存;
所述主機(jī)自動(dòng)比較執(zhí)行所述出錯(cuò)步驟之前和之后獲取的全局變量的數(shù)值,輸出數(shù)值發(fā)生變化的全局變量的標(biāo)識(shí);
用戶根據(jù)所述數(shù)值有變化的全局變量的標(biāo)識(shí)查找對(duì)這些全局變量的處理是否存在錯(cuò)誤。
進(jìn)一步地,上述方法還可具有以下特點(diǎn):
在執(zhí)行所述軟件之前,所述主機(jī)先保存所述軟件編譯過程中輸出的全局變量所在內(nèi)存的地址信息;
所述主機(jī)在執(zhí)行出錯(cuò)步驟之前和之后,分別從運(yùn)行所述軟件的模擬系統(tǒng)中獲取全局變量的數(shù)值時(shí),是獲取在執(zhí)行出錯(cuò)步驟之前和之后,全局變量所在內(nèi)存區(qū)域中存儲(chǔ)單元的地址和數(shù)值。
進(jìn)一步地,上述方法還可具有以下特點(diǎn):
在執(zhí)行所述軟件之前,所述主機(jī)先保存所述軟件編譯過程中輸出的各個(gè)全局變量的地址與其標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系信息;
所述主機(jī)自動(dòng)比較執(zhí)行出錯(cuò)步驟前后的全局變量的數(shù)值時(shí),是比較執(zhí)行出錯(cuò)步驟之前和之后讀取的存儲(chǔ)單元的地址和數(shù)值,查找所有地址相同但數(shù)值不同的存儲(chǔ)單元,如查找到,再根據(jù)查找到的存儲(chǔ)單元的地址查找到對(duì)應(yīng)的全局變量的標(biāo)識(shí)并輸出。
進(jìn)一步地,上述方法還可具有以下特點(diǎn):
所述運(yùn)行所述軟件的系統(tǒng)或模擬系統(tǒng)為嵌入式系統(tǒng)或者為在所述主機(jī)上的嵌入式運(yùn)行環(huán)境即模擬的嵌入式系統(tǒng)。
進(jìn)一步地,上述方法還可具有以下特點(diǎn):
所述出錯(cuò)步驟是指執(zhí)行軟件時(shí)發(fā)生錯(cuò)誤的步驟,包括軟件中的一條或多條指令。
本發(fā)明提供的尋找軟件錯(cuò)誤的系統(tǒng)包括運(yùn)行所述軟件的系統(tǒng)或模擬系統(tǒng),以及存儲(chǔ)模塊、控制模塊和比較模塊,其中:
所述存儲(chǔ)模塊包括第一數(shù)據(jù)存儲(chǔ)單元,用于保存在執(zhí)行軟件的出錯(cuò)步驟之前從運(yùn)行所述軟件的系統(tǒng)或模擬系統(tǒng)中獲取的全局變量的數(shù)值;以及第二數(shù)據(jù)存儲(chǔ)單元,用于保存在執(zhí)行軟件的出錯(cuò)步驟之后從運(yùn)行所述軟件的系統(tǒng)或模擬系統(tǒng)中獲取的全局變量的數(shù)值;
所述控制模塊用于與運(yùn)行所述軟件的系統(tǒng)或模擬系統(tǒng)進(jìn)行交互,包括執(zhí)行所述軟件或軟件中的部分步驟,在執(zhí)行軟件的出錯(cuò)步驟之前和之后發(fā)出讀取全局變量的命令以獲取全局變量的數(shù)值并保存在所述第一數(shù)據(jù)存儲(chǔ)單元或第二數(shù)據(jù)存儲(chǔ)單元,還用于啟動(dòng)所述比較模塊;
所述比較模塊用于在啟動(dòng)后,自動(dòng)比較所述第一數(shù)據(jù)存儲(chǔ)單元和第二數(shù)據(jù)存儲(chǔ)單元中的全局變量的數(shù)值,并輸出數(shù)值發(fā)生變化的全局變量的標(biāo)識(shí)。
進(jìn)一步地,上述系統(tǒng)還可具有以下特點(diǎn):
所述存儲(chǔ)模塊還包括內(nèi)存分配信息存儲(chǔ)單元,用于保存所述軟件編譯過程中輸出的全局變量在內(nèi)存中的地址信息;所述第一數(shù)據(jù)存儲(chǔ)單元和第二數(shù)據(jù)存儲(chǔ)單元保存的是全局變量所在內(nèi)存區(qū)域中存儲(chǔ)單元的地址和數(shù)值。
進(jìn)一步地,上述系統(tǒng)還可具有以下特點(diǎn):
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京中星微電子有限公司,未經(jīng)北京中星微電子有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810239891.0/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種激光全息瞄具
- 下一篇:一種熱風(fēng)爐
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 一種基于應(yīng)用軟件散布的軟件授權(quán)與保護(hù)方法及系統(tǒng)
- 一種用于航空機(jī)載設(shè)備的軟件在線加載系統(tǒng)及方法
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 惡意軟件檢測(cè)方法及裝置
- 一種基于軟件基因的軟件同源性分析方法和裝置
- 軟件引入系統(tǒng)、軟件引入方法及存儲(chǔ)介質(zhì)
- 軟件驗(yàn)證裝置、軟件驗(yàn)證方法以及軟件驗(yàn)證程序
- 使用靜態(tài)和動(dòng)態(tài)惡意軟件分析來擴(kuò)展惡意軟件的動(dòng)態(tài)檢測(cè)
- 一種工業(yè)控制軟件構(gòu)建方法和軟件構(gòu)建系統(tǒng)
- 可替換游戲軟件與測(cè)驗(yàn)軟件的裝置與方法
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





