[發明專利]一種C++內存泄漏的檢測方法有效
| 申請號: | 201410338527.5 | 申請日: | 2014-07-17 |
| 公開(公告)號: | CN105302712A | 公開(公告)日: | 2016-02-03 |
| 發明(設計)人: | 劉金虎;徐教明 | 申請(專利權)人: | 南京普愛射線影像設備有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 211112 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 c++ 內存 泄漏 檢測 方法 | ||
技術領域
本發明屬于軟件測試技術領域,涉及軟件黑盒測試方法,具體涉及C++軟件工程代碼級的內存泄露定位檢測方法。
背景技術
目前,由于目前使用C++語言進行項目開發越來越廣泛,比如圖像校正、圖像增強、圖像采集、嵌入式開發,C++語言的優勢在于能開發接近硬件底層操作的運用程序,得益于C++指針的使用,可以直接對計算機的內存進行讀寫和申請,因此開發出的運用程序具有運行速度快的特點,也正因為此,C++在內存使用上稍有不當,容易引起內存泄露事故,降低計算機運行性能,更有甚者,會引起程序的崩潰,導致嚴重后果,所以對C++進行內存泄露進行檢測和定位就非常必須了。
發明內容
本發明目的在于提供了一種BoundsChecker的C++內存泄漏的檢測、定位分析方法,能夠有效對指針操作和內存、資源泄露錯誤、內存操作方面的錯誤、API函數使用錯誤進行檢測,提高C++運用程序的可靠性和穩定性。
本發明采用的技術方案是:利用BoundsChecker工具集成于VC++集成開發環境中,編譯運行開發程序,BoundsChecker給出錯誤檢測結果列表,定位到C++內存泄漏代碼,檢測出指針操作和內存、資源泄露錯誤,內存操作方面的錯誤,API函數使用錯誤,給出錯的明確提示信息。
本發明的有益效果是:能夠提高C++運用程序的可靠性和穩定性。
具體實施方式
本發明的具體實施過程如下:
1.安裝BoundsChecker7.2,BoundsChecker集成于VC++集成開發環境中。
2.在VC++集成開發環境中打開你所要測試的項目。
3.由于要使用BoundsChecker的編譯連接器重新編譯連接程序,所以我們為BoundsChecker獨自構造一個文件夾,在VC++集成開發環境中,具體操作方法是:
A)點擊[Build/Configurations...]菜單命令;
B)在彈出的對話框中點擊Ad按鈕,在Configuration編輯框中添入BoundsChecker創建的文件夾的名稱,這個名稱是任意的,比如我們取名為BoundChecker;
C)在Copysettingsfrom組合框中選中XXX—Win32Debug項,然后點擊OK按鈕,接著點擊Close按鈕,現在,我們已經為FinalCheck構造好了一個文件夾。
4.點擊[Build/SetActiveConfiguration…]菜單命令,選中你剛才為BoundsChecker建的文件夾,然后點擊OK按鈕,這樣BoundsChecker編譯連接程序時生成的中間文件、可執行程序,都會被放到該文件夾下。
5.選擇[BoundsChecker/RebuildAllwithBoundsChecker]菜單命令,對程序重新進行編譯連接,也就是在這時,BoundsChecker向被測程序的代碼中加入了錯誤檢測碼,編譯連接完成后,BoundsChecker會在你為BoundsChecker構造的文件夾中生成可執行文件,在FinalCheck模式下對程序進行檢測的準備工作都已經做好,這時可以啟動程序開始測試了,步驟與在ActiveChecker模式下沒什么區別,具體步驟如下:
5.1確保VC++集成開發環境中[BoundsChecker/ErrorDetection]菜單項和[BoundsChecker/LogEvents]菜單項處于選中狀態,別外設置[BoundsChecker/Setting]MemoryTracking選項中的EnableFinalCheckt為選中狀態;
5.2點擊[Build/StartDebug]菜單,選中“Go”菜單項,程序開始在Debug狀態下運行,按照你制定好的測試用例,對程序進行操作。
5.3當BoundsChecker檢測到了錯誤時,會彈出窗口向你匯報,你可以當時就進行處理,也可以等到你的操作全部完成,退出程序之后再對列出的這些錯誤進行分析,這完全取決于你是否選中了[BoundsChecker/DisplayErrorandPause]菜單項;
5.4退出程序后,BoundsChecker會給出錯誤檢測結果列表。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京普愛射線影像設備有限公司,未經南京普愛射線影像設備有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410338527.5/2.html,轉載請聲明來源鉆瓜專利網。





