[發明專利]一種檢測內存泄漏的方法及系統無效
| 申請號: | 201110252335.9 | 申請日: | 2011-08-30 |
| 公開(公告)號: | CN102279797A | 公開(公告)日: | 2011-12-14 |
| 發明(設計)人: | 吳昊 | 申請(專利權)人: | 深圳寶德科技集團股份有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 深圳市順天達專利商標代理有限公司 44217 | 代理人: | 易釗 |
| 地址: | 518000 廣東省深圳市*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 檢測 內存 泄漏 方法 系統 | ||
技術領域
本發明涉及內存檢測技術,尤其涉及一種檢測內存泄漏的方法及系統。
背景技術
內存測試需要測試軟件中的內存越界訪問、內存資源泄漏情況。內存越界主要包括數組越界讀寫、“野指針操作”和堆棧溢出等。內存資源泄漏情況則包含較多的種類,如分配的內存沒有釋放、打開的文件沒有關閉、socket沒有關閉、Windows窗口句柄沒有關閉等。內存越界和內存資源泄漏是普遍存在的嚴重問題,可以說如果解決了內存越界和內存資源泄漏問題,軟件中的Bug就消除了一大半以上。
針對內存測試的特點和待測試的內容,當前內存測試的主要手段包括以下幾種:靜態檢查,即使用靜態檢查工具或代碼評審檢視等手段來發現問題;動態檢查,即通過使用內存動態檢查工具在軟件運行時進行檢查;手工測試,自行編寫內存測試代碼進行白盒測試和黑盒測試,設計專門的用例來檢查可能存在的資源泄漏和內存越界等問題;使用內存監測工具進行監測,如Windows系統使用任務管理器來監測程序的內存使用情況、句柄等資源使用情況等。看是否存在資源泄漏等情況;通過路徑分析方法來提高內存測試的質量,分析可能出現的操作路徑,對這些操作路徑反復測試,可以利用動態檢查方法進行測試;編寫極端情況下的測試用例來模擬內存資源的最大消耗情況,看程序消耗的內存等資源是否會超越系統所能承受的極限。
使用上述測試手段的任何一種時都存在某種程度的缺陷,例如:靜態檢查可以檢查內存中的堆棧溢出等比較淺顯的問題,對復雜的內存使用情況無能為力;動態檢查,鑒于測試用例對程序執行路徑的覆蓋很難做到完全,此時很難完全檢查內存越界或內存泄漏。
發明內容
本發明要解決的技術問題在于針對現有技術中檢測內存泄漏的方法單一,沒有形成一套完善的檢測內存泄漏的方法的缺陷,提供一種較完善的檢測內存泄漏的方法及系統。
本發明解決其技術問題所采用的技術方案是:
提供一種檢測內存泄漏的方法,包括以下步驟:
S1、讀取內存基本信息;
S2、判斷所讀取的內存基本信息是否正確;
S3、在所述內存基本信息正確時,根據所讀取的內存基本信息,通過代碼走讀的方式來判斷內存占用量是否持續增長;
S4、在所述內存占用量持續增長時,獲取內存分配和釋放的函數調用數據;
S5、根據所述函數調用數據獲知每一塊內存的生命周期,定位內存泄漏。
本發明所述的檢測內存泄漏的方法中,步驟S1具體包括:
S11、在開機時,讀取POST界面和BIOS下的內存容量;
S12、在dos下利用光盤版Memtest運行測試50次以上,讀取內存容量和頻率;
S13、在RED?Hat?5.4和Suse10系統中讀取內存容量;
S14、在linux系統下運行STRESS?48小時以上,并讀取內存基本信息;
S15、在Windows系統中讀取內存容量;
S16、運行everest?ultimate軟件讀取內存各種信息,包括內存容量、存取類型、存取速度和頻率;
S17、反復運行壓力測試工具24小時以上,讀取所述內存基本信息。
本發明所述的檢測內存泄漏的方法中,在所述內存基本信息正確時,還包括步驟:
讀取內存帶寬、延時和緩存信息進行性能測試,并在所讀取的內存帶寬、延時和緩存信息均正確無誤時,再判斷內存的大小是否持續增長。
本發明所述的檢測內存泄漏的方法中,在步驟S1之前還包括步驟:
S0、對內存進行物理兼容性測試,以檢測內存結構是否完整無損以及內存是否正確安裝。
本發明解決其技術問題所采用的另一技術方案是:
提供一種檢測內存泄漏的系統,包括:
內存信息讀取模塊,用于讀取內存基本信息;
第一判斷模塊,用于判斷所述內存信息讀取模塊所讀取的內存基本信息是否正確;
第二判斷模塊,用于在所述第一判斷模塊的判斷結果為所述內存基本信息正確時,根據所述內存信息讀取模塊所讀取的內存基本信息,通過代碼走讀的方式來判斷內存占用量是否持續增長;
函數調用數據獲取模塊,用于在所述第二判斷模塊的判斷結果為所述內存占用量持續增長時,獲取內存分配和釋放的函數調用數據;
內存泄漏定位模塊,用于根據所述函數調用數據獲取模塊獲取的所述函數調用數據獲知每一塊內存的生命周期,定位內存泄漏。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳寶德科技集團股份有限公司,未經深圳寶德科技集團股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110252335.9/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:用于低量燃料噴射的控制系統和方法
- 下一篇:高效低破碎玉米果穗剝皮裝置





