C/C++程序靜態(tài)內存泄漏警報自動確認方法
發(fā)布時間:2022-11-10 17:18
內存泄漏是C/C++程序的一種常見的、難以發(fā)現(xiàn)的缺陷,一直困擾著軟件開發(fā)者,尤其是針對長時間運行的程序或者系統(tǒng)軟件,內存泄漏的后果十分嚴重.針對內存泄漏的檢測,目前主要有靜態(tài)分析和動態(tài)測試兩種方法.動態(tài)測試實際運行程序具有較大開銷,同時依賴測試用例的質量;靜態(tài)分析技術及自動化工具已被學術界和工業(yè)界廣泛運用于內存泄漏缺陷檢測中,然而由于靜態(tài)分析采取了保守的策略,其結果往往包含數(shù)量巨大的誤報,需要通過進一步的人工確認來甄別誤報.但人工確認靜態(tài)分析的結果耗時且容易出錯,嚴重限制了靜態(tài)分析技術的實用性.提出一種基于混合執(zhí)行測試的靜態(tài)內存泄漏警報的自動化確認方法:首先,針對靜態(tài)分析報告的目標程序中內存泄漏的靜態(tài)警報,對目標程序進行控制流分析,并計算警報的可達性,形成制導信息;其次,基于警報制導信息對目標程序進行混合執(zhí)行測試;最后,在混合執(zhí)行測試過程中,監(jiān)控追蹤內存對象的狀態(tài),判定內存泄漏是否發(fā)生,對靜態(tài)警報進行動態(tài)確認并分類.實驗結果表明:該方法可對靜態(tài)內存泄漏警報進行有效的分類,顯著降低了人工確認的工作量.
【文章頁數(shù)】:18 頁
【文章目錄】:
1 靜態(tài)內存泄漏警報
1.1 形式化定義
1.2 警報分類
2 C/C++程序靜態(tài)內存泄漏警報自動確認方法
2.1 方法架構
2.2 警報可達性分析
2.3 路徑制導的混合執(zhí)行測試
2.4 警報動態(tài)確認
3 工具與評估
3.1 工具實現(xiàn)
3.2 實驗對象與設計
3.3 實驗數(shù)據及分析
3.3.1 實驗1
結論1.
結論2.
結論3.
3.3.2 實驗2
3.3.3 實驗3
3.4 討論
4 相關工作
4.1 內存泄漏檢測
4.2 測試生成方法
4.3 靜態(tài)分析結果的驗證和誤報消除
5 總結與展望
【參考文獻】:
期刊論文
[1]一種目標制導的混合執(zhí)行測試方法[J]. 崔展齊,王林章,李宣東. 計算機學報. 2011(06)
本文編號:3704989
【文章頁數(shù)】:18 頁
【文章目錄】:
1 靜態(tài)內存泄漏警報
1.1 形式化定義
1.2 警報分類
2 C/C++程序靜態(tài)內存泄漏警報自動確認方法
2.1 方法架構
2.2 警報可達性分析
2.3 路徑制導的混合執(zhí)行測試
2.4 警報動態(tài)確認
3 工具與評估
3.1 工具實現(xiàn)
3.2 實驗對象與設計
3.3 實驗數(shù)據及分析
3.3.1 實驗1
結論1.
結論2.
結論3.
3.3.2 實驗2
3.3.3 實驗3
3.4 討論
4 相關工作
4.1 內存泄漏檢測
4.2 測試生成方法
4.3 靜態(tài)分析結果的驗證和誤報消除
5 總結與展望
【參考文獻】:
期刊論文
[1]一種目標制導的混合執(zhí)行測試方法[J]. 崔展齊,王林章,李宣東. 計算機學報. 2011(06)
本文編號:3704989
本文鏈接:http://www.sikaile.net/kejilunwen/ruanjiangongchenglunwen/3704989.html
最近更新
教材專著