亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        內(nèi)存泄漏檢測方法研究綜述

        2018-01-04 10:59:48汪明曄
        電腦知識與技術(shù) 2018年28期
        關(guān)鍵詞:程序檢測方法

        汪明曄

        摘要:內(nèi)存泄漏是一個長期困擾軟件開發(fā)人員的問題,學(xué)術(shù)界針對該問題進(jìn)行了長期的研究和討論。當(dāng)前定位內(nèi)存泄漏位置的方法主要有靜態(tài)檢測、動態(tài)檢測、靜態(tài)檢測和動態(tài)檢測相結(jié)合的三種方法。本文將介紹內(nèi)存泄漏的原因,分別闡述上述三種內(nèi)存泄漏檢測的原理和方法,分析它們各自的優(yōu)勢和不足,最后指明內(nèi)存泄漏檢測技術(shù)未來的發(fā)展方向。

        中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)28-0276-01

        內(nèi)存泄漏問題的產(chǎn)生一般是由于軟件開發(fā)設(shè)計過程留下的代碼缺陷,導(dǎo)致程序向系統(tǒng)申請的堆區(qū)內(nèi)存沒有被回收或者沒有被及時回收。內(nèi)存泄漏的不斷積累通常會使程序的可用內(nèi)存空間減少,執(zhí)行速度減慢,甚至發(fā)生無法挽回的系統(tǒng)故障[1]。同時,內(nèi)存泄漏缺陷的存在還可能被一些針對軟件系統(tǒng)的攻擊行為(比如拒絕服務(wù)Denial of Service)所利用和放大,對軟件安全性產(chǎn)生十分不良的影響[2]。

        為了解決內(nèi)存泄漏問題,靜態(tài)檢測、動態(tài)檢測、靜態(tài)檢測和動態(tài)檢測相結(jié)合等方法被提出。通過這些檢測方法,軟件開發(fā)人員可以找到造成內(nèi)存泄漏的代碼位置,修復(fù)造成內(nèi)存泄漏的軟件缺陷。

        本文將重點(diǎn)介紹內(nèi)存泄漏檢測原理和方法,圍繞它們各自的優(yōu)勢和不足,分析每種方法的優(yōu)缺點(diǎn),科學(xué)預(yù)測內(nèi)存泄漏檢測技術(shù)未來的發(fā)展方向。

        1 內(nèi)存泄漏檢測原理和方法

        靜態(tài)檢測方法是在目標(biāo)程序運(yùn)行前對程序源碼或目標(biāo)代碼進(jìn)行靜態(tài)分析,發(fā)現(xiàn)潛在的內(nèi)存泄漏代碼缺陷;動態(tài)檢測方法是當(dāng)目標(biāo)程序運(yùn)行時,收集程序內(nèi)存操作信息,判斷是否發(fā)生內(nèi)存泄漏;為了提高動態(tài)檢測方法的效率,也為了減少對目標(biāo)程序運(yùn)行的干擾,可以先對程序的源碼做靜態(tài)分析或者目標(biāo)機(jī)器代碼反匯編并做靜態(tài)分析,預(yù)測可能發(fā)生泄漏的代碼段,當(dāng)程序運(yùn)行時,只在這些代碼段被執(zhí)行時跟蹤收集程序的內(nèi)存操作信息,這便是靜態(tài)檢測和動態(tài)檢測相結(jié)合的方法。

        1.1 內(nèi)存泄漏靜態(tài)檢測

        靜態(tài)檢測原理是通過對目標(biāo)程序的源碼或者目標(biāo)代碼進(jìn)行詞法語法分析或解析,發(fā)現(xiàn)潛在的代碼缺陷,報告給軟件開發(fā)人員,其一般流程如圖1所示:

        靜態(tài)檢測方法一般采用模式匹配預(yù)測可能發(fā)生內(nèi)存泄漏的位置,具體使用哪種模式因程序的高級語言或者匯編指令而異,通過判斷堆指針是否被正確釋放檢測是否發(fā)生內(nèi)存泄漏。

        1.2 內(nèi)存泄漏動態(tài)檢測

        動態(tài)檢測原理一般是通過截獲目標(biāo)程序的內(nèi)存操作函數(shù)(如malloc、free等)獲取所申請的內(nèi)存的信息,通過判斷動態(tài)申請的內(nèi)存是否被釋放或者在預(yù)定時間內(nèi)被釋放檢測是否發(fā)生內(nèi)存泄漏。動態(tài)檢測方法的一般步驟如圖2所示:

        1.3 內(nèi)存泄漏靜態(tài)檢測和動態(tài)檢測相結(jié)合的方法

        靜態(tài)檢測和動態(tài)檢測相結(jié)合的方法綜合了靜態(tài)檢測和動態(tài)檢測兩種方法,該方法首先使用靜態(tài)檢測方法確定程序可能發(fā)生內(nèi)存泄漏的位置,當(dāng)程序運(yùn)行時,通過對這些潛在內(nèi)存泄漏位置進(jìn)行動態(tài)跟蹤檢測,該方法的一般步驟如圖3所示:

        2 三種內(nèi)存泄漏方法的比較結(jié)論

        靜態(tài)檢測方法對程序的運(yùn)行沒有影響,但是僅通過對程序靜態(tài)分析產(chǎn)生內(nèi)存泄漏警報存在誤報的情況;動態(tài)檢測方法通過跟蹤進(jìn)程的內(nèi)存操作確認(rèn)內(nèi)存泄漏的結(jié)果是否準(zhǔn)確,但是會影響到程序的運(yùn)行,而且存在漏報情況;靜態(tài)和動態(tài)檢測相結(jié)合的方法,通過靜態(tài)檢測減少了漏報的情況和對程序運(yùn)行的干擾,通過動態(tài)檢測使檢測的結(jié)果更加可靠,是一種折中的方法,也是未來內(nèi)存泄漏檢測技術(shù)研究的發(fā)展趨勢。

        參考文獻(xiàn):

        [1] 王喆. C/C++代碼內(nèi)存泄漏缺陷檢測方法研究[D].大連理工大學(xué), 2012.

        [2] 李孟宸. 面向C語言程序內(nèi)存泄漏的動態(tài)確認(rèn)技術(shù)[D].南京大學(xué), 2014.

        【通聯(lián)編輯:梁書】

        猜你喜歡
        程序檢測方法
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        試論我國未決羈押程序的立法完善
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        可能是方法不對
        小波變換在PCB缺陷檢測中的應(yīng)用
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        成人亚洲精品777777| 老熟女富婆激情刺激对白| 中文乱码字幕在线亚洲av| 国语淫秽一区二区三区四区| 日韩精品中文一区二区三区在线 | 爱a久久片| 男男啪啪激烈高潮cc漫画免费| 久久综合国产乱子伦精品免费| 欧美黑人粗暴多交高潮水最多| 亚洲图区欧美| 偷拍自拍一区二区三区| 全程国语对白资源在线观看 | 国产精品九九九久久九九| 91精品国产91久久久无码色戒| 午夜人妻中文字幕福利| 中文字幕久久久人妻人区| 日韩国产人妻一区二区三区| aⅴ精品无码无卡在线观看| 中文人妻无码一区二区三区在线| 国产精品久久久久久久久鸭| 妺妺窝人体色www聚色窝韩国| 国产爆乳美女娇喘呻吟久久| 国产主播一区二区三区在线观看 | 7777奇米四色成人眼影| 亚洲高潮喷水中文字幕| 青青草免费视频一区二区| 亚洲午夜精品一区二区麻豆av| 亚洲精品无人区| 国产人澡人澡澡澡人碰视频| 国产精品18久久久久久不卡中国| 水蜜桃一二二视频在线观看免费 | 谁有在线观看av中文| 丰满的少妇av一区二区三区| 女人被狂躁高潮啊的视频在线看| 欧美日韩中文国产一区| 亚洲另在线日韩综合色| 日本一区二区三区在线视频播放 | 国产成版人性视频免费版| 精品国产一区二区三区a| 精品国产午夜肉伦伦影院| 久久久久久久97|