[發明專利]一種基于嵌入式軟件的靜態檢測方法及其系統無效
| 申請號: | 201210309683.X | 申請日: | 2012-08-28 |
| 公開(公告)號: | CN102968367A | 公開(公告)日: | 2013-03-13 |
| 發明(設計)人: | 劉發貴;賀南;劉佳欣 | 申請(專利權)人: | 華南理工大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 廣州粵高專利商標代理有限公司 44102 | 代理人: | 何淑珍 |
| 地址: | 510640 廣*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 嵌入式 軟件 靜態 檢測 方法 及其 系統 | ||
技術領域
本發明涉及軟件檢測技術領域,特別是涉及一種基于嵌入式軟件的靜態檢測方法及其系統。?
背景技術
嵌入式系統發展到目前,廣泛應用于自動化控制、軍事技術、工業控制、科學研究、醫學研究、交通管理、人工智能等系統環境中。嵌入式系統中,硬件是核心,軟件是靈魂,嵌入式軟件在整體系統中處于關鍵地位。如何在盡量縮短開發周期的條件下,保證嵌入式軟件的質量、可靠性、安全性等,成為了一個備受關注的課題。因此,嵌入式軟件測試的重要性日益突出。?
在嵌入式軟件開發過程中,代碼中存在的錯誤發現越晚,則維護代價越高,所以,盡早地發現并解決代碼中存在的錯誤,對控制嵌入式軟件的開發成本及保證嵌入式軟件質量至關重要。靜態檢測是在不運行程序的情況下,對源代碼結構進行分析發現潛在錯誤,能夠在開發階段發現源碼中存在的問題,這對于控制嵌入式軟件開發周期及降低數字家嵌入式軟件維護成本具有重要的意義。?
目前已存在也存在針對C進行靜態檢測的工具,有的基于命令行工作,比如Splint,CPPCheck,容易產生較多警告信息,其中一些為誤報信息,容易淹沒正常錯誤信息,檢測結果不易查看。有的價格昂貴,比如QAC/C++、PC-Lint、LDRA及PolySpace,對于小成本嵌入式項目來說,測試成本難以接受,難于推廣。另外,現有的靜態檢測技術在檢測過程中僅考慮控制流信息,沒有考慮數據流分析,對某些錯誤無法檢測;沒有對路徑別名進行分析,會產生許多誤報信息。現有的免費靜態檢測工具基于命令行工作,無法直觀定位違規路徑信息,不方便開發人員根據檢測結果對源碼中存在的錯誤問題進行修改。?
總體來說現有技術存在以下不足:?
1)檢測過程僅使用控制流信息,沒有集合數據流信息,某些錯誤無法檢測;
2)沒有對路徑別名進行分析,會產生誤報信息;
3)沒有對違反規則的執行路徑定位,檢測結果不能被其他工具利用。
發明內容
為了克服現有技術的不足,本發明的一個技術目的是提供一種使用方便,能夠很好實現對源文件進行檢測的基于嵌入式軟件的靜態檢測方法。?
為了克服現有技術的不足,本發明的另一個技術目的是提供一種使用方便,能夠很好實現對源文件進行檢測的基于嵌入式軟件的靜態檢測方法。?
為實現上述技術目的,本發明采用的技術方案如下:?
一種基于嵌入式軟件的靜態檢測方法,包括以下步驟:
對源文件結構進行分析,生成控制流、數據流信息的步驟;
對規則文件進行解析的步驟;
根據解析產生的規則約束字符串構造正則表達式的步驟;
根據正則表達式、控制流、數據流信息執行規則匹配的步驟;
如果發現匹配條目,則對違反檢測規則的語句及控制流路徑進行記錄,進行封裝,將封裝產生的檢測結果,然后進行分析顯示。
優選地,所述執行規則匹配,還包括在規則匹配過程更新路徑別名信息的步驟。?
優選地,更新路徑別名信息具體為:根據動態內存分配、動態內存釋放及指針變量賦值操作時更新路徑別名信息。?
優選地,還包括通過預設的敏感資源檢測庫對源文件進行敏感檢測的步驟。?
優選地,所述規則匹配為在GIMPLE圖上執行匹配操作,根據檢測規則的復雜程度,執行相應程度的規則檢測。?
為實現上述第二個技術目的,本發明采用的技術方案如下:?
一種基于嵌入式軟件的靜態檢測系統,包括:
用于負責向GCC插件框架注冊需監聽的插件事件,GCC插件框架在監聽的插件事件產生后會調用預先定義的回調函數的事件注冊模塊;
負責對源代碼進行解析生成控制流,數據依賴,GIMPLE圖等信息的結構信息生成模塊;
基于GIMPLE圖完成檢測工作,結合控制流及數據依賴信息進行檢測的規則檢測模塊;
負責對規則文件進行解析建立規則鏈的所述規則解析模塊;
對規則的模式字符串進行處理生成正則表達式正則表示式構建模塊;
負責在GIMPLE圖上執行匹配操作,根據檢測規則的復雜程度,執行相應程度的規則檢測的規則匹配模塊;
對路徑別名進行分析處理的模塊,動態內存分配,動態內存釋放及指針變量賦值操作均影響路徑別名分析關系,當檢測過程遇到上述操作語句時,路徑別名分析模塊更新路徑別名信息的路徑別名分析模塊;
對靜態檢測結果采用統一格式進行封裝,針對每條匹配結果,封裝保存詳細違規信息及違規路徑對應的路徑條件信息的匹配結果封裝模塊。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華南理工大學,未經華南理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210309683.X/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種新型生物質裂解爐膛
- 下一篇:一種卡線板





