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