[發明專利]一種嵌入式軟件的源代碼級錯誤檢測方法在審
| 申請號: | 201810939573.9 | 申請日: | 2018-08-17 |
| 公開(公告)號: | CN109101427A | 公開(公告)日: | 2018-12-28 |
| 發明(設計)人: | 姚天問;張波;陳華;鐘敏;謝黛茜;張奔 | 申請(專利權)人: | 四川航天系統工程研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F8/41 |
| 代理公司: | 四川省成都市天策商標專利事務所 51213 | 代理人: | 王荔 |
| 地址: | 610000 四川省成都*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 動態標簽 調用函數 全局函數 檢測 嵌入式軟件 錯誤檢測 函數調用 源代碼級 基本塊 控制流 調用 標簽檢測 函數分配 靜態函數 同一函數 更新 標簽 返回 恢復 | ||
1.一種嵌入式軟件的源代碼級錯誤檢測方法,其特征在于,包括:
步驟S1:為每個函數分配唯一的靜態函數標簽FID;
步驟S2:對每一個函數進行修改參數表,增加參數df、參數S和參數ds;其中,df為函數標簽差異值,S為函數調用前一基本塊的靜態標簽,ds為基本塊標簽差異值;
步驟S3:修改當前函數和被調用函數,在當前函數中修改被調用函數的參數,增加所述參數df、參數S和參數ds;在被調用函數的開始處更新基本塊動態標簽GS、全局函數動態標簽GF;在被調用函數的結尾處檢測全局函數動態標簽GF以及更新基本塊動態標簽GS;在函數調用返回后恢復全局函數動態標簽GF。
2.根據權利要求1所述的一種嵌入式軟件的源代碼級錯誤檢測方法,其特征在于,所述步驟S2中的df=FID_FUNC1⊕FID_FUNC2,其中FID_FUNC1表示當前函數的靜態函數標簽,FID_FUNC2表示被調用函數的靜態函數標簽;所述ds=S_PRE⊕S_FUNC,其中S_PRE表示函數調用語句的上一個基本塊PRE_BLOCK的靜態標簽,S_FUNC表示函數調用語句的靜態標簽。
3.根據權利要求2所述的一種嵌入式軟件的源代碼級錯誤檢測方法,其特征在于,所述步驟S3具體包括:
步驟S31:在當前函數修改被調用函數的參數表,增加所述參數df、參數S和參數ds;
步驟S32:在函數入口處增加基本塊標簽更新語句和函數標簽更新語句;
步驟S33:對當前函數內部的每一條函數調用語句,執行下列操作:
步驟S331:計算當前函數的靜態標簽FID_FUNC1與被調用函數的靜態標簽FID_FUNC2的差異值df;
步驟S332:計算函數調用語句上一基本塊PRE_BLOCK的靜態標簽S_PRE與函數調用語句靜態標簽S_FUNC之間的標簽差異值ds;
步驟S333:被調用函數執行參數調整后的語句,在函數返回前,插入用于檢查錯誤的標簽檢測語句和用于恢復調用函數前數值的基本塊標簽恢復語句;
步驟S334:在函數返回處添加函數標簽恢復語句。
4.根據權利要求3所述的一種嵌入式軟件的源代碼級錯誤檢測方法,其特征在于,所述標簽檢測語句為:check(GF==FID_FUNC);所述基本塊標簽恢復語句為:GS=GS+S_LAST+S+ds,其中,S_LAST為最后一個基本塊LAST_BLOCK的靜態標簽。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川航天系統工程研究所,未經四川航天系統工程研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810939573.9/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種業務比對測試系統
- 下一篇:一種UI自動化測試系統





