[發明專利]路徑敏感檢測方法和裝置有效
| 申請號: | 201410064881.3 | 申請日: | 2014-02-25 |
| 公開(公告)號: | CN104866417B | 公開(公告)日: | 2018-01-02 |
| 發明(設計)人: | 衷璐潔;霍瑋;李豐;張兆慶 | 申請(專利權)人: | 華為技術有限公司;中國科學院計算技術研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京同立鈞成知識產權代理有限公司11205 | 代理人: | 劉芳 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 路徑 敏感 檢測 方法 裝置 | ||
1.一種路徑敏感檢測方法,其特征在于,包括:
根據值流錯誤類型為變量設置初始的與錯誤相關的屬性;
沿著定值引用鏈傳播所述初始的與錯誤相關的屬性,所述定值引用鏈為所有可能流經定值點的引用點所組成的集合;
在潛在錯誤語句處識別所述變量的與錯誤相關的屬性;
根據所述在潛在錯誤語句處識別的所述變量的與錯誤相關的屬性,確定所述潛在錯誤語句為可能錯誤語句,所述可能錯誤語句表示所述變量的定值語句經由部分路徑到達會導致錯誤的引用語句;
根據所述可能錯誤語句獲得路徑敏感檢測的語句輸入集;
根據所述路徑敏感檢測的語句輸入集進行路徑敏感檢測;
所述根據所述在潛在錯誤語句處識別的所述變量的與錯誤相關的屬性,確定所述潛在錯誤語句為可能錯誤語句,包括:
根據所述在潛在錯誤語句處識別的所述變量的與錯誤相關的屬性,確定所述變量的與錯誤相關的屬性是否為不安全的屬性;
若所述變量的與錯誤相關的屬性為不安全的屬性,則通過檢查當前的控制節點確定所述當前的控制節點中是否存在檢查語句,所述控制節點為所述潛在錯誤語句相對于所述變量的定值語句的控制流圖上的控制節點;
若存在檢查語句,則查找是否存在特殊控制流;
若不存在特殊控制流,則將下一個控制節點作為當前控制節點,并執行所述通過檢查當前的控制節點確定所述當前的控制節點中是否存在檢查語句的步驟;
在檢查過的所有控制節點中都不存在檢查語句和特殊控制流的情況下,確定所述潛在錯誤語句為可能錯誤語句。
2.根據權利要求1所述的方法,其特征在于,還包括:
若不存在檢查語句,則將下一個控制節點作為當前控制節點,并執行所述通過檢查當前的控制節點確定所述當前的控制節點中是否存在檢查語句的步驟。
3.根據權利要求1或2所述的方法,其特征在于,還包括:
若存在特殊控制流,則確定所述潛在錯誤語句為一定不錯語句。
4.根據權利要求1或2所述的方法,其特征在于,所述根據所述可能錯誤語句獲得路徑敏感檢測的語句輸入集,包括:
對所述可能錯誤語句進行程序切片,以獲得與所述可能錯誤語句相關的語句集合,并將所述與所述可能錯誤語句相關的語句集合作為路徑敏感檢測的語句輸入集。
5.根據權利要求4所述的方法,其特征在于,所述對所述可能錯誤語句進行程序切片,以獲得與可能錯誤語句相關的語句集合,包括:
對所述可能錯誤語句進行后向切片,以獲得語句集合SBT;
對所述變量的定值語句進行前向切片,以獲得語句集合SFS;
計算所述SBT與所述SFS的交集STS,并對所述變量的定值語句進行后向切片,以獲得對所述變量的定值語句進行后向切片的結果;
計算獲得的對所述變量的定值語句進行后向切片的結果與所述STS的并集,并將所述對所述變量的定值語句進行后向切片的結果與所述STS的并集作為與所述可能錯誤語句相關的語句集合,并將所述與所述可能錯誤語句相關的語句集合作為路徑敏感檢測的語句輸入集。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司;中國科學院計算技術研究所,未經華為技術有限公司;中國科學院計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410064881.3/1.html,轉載請聲明來源鉆瓜專利網。





