一种c++内存泄漏的检测方法

文档序号:9547094阅读:371来源:国知局
一种c++内存泄漏的检测方法
【技术领域】
[0001]本发明属于软件测试技术领域,涉及软件黑盒测试方法,具体涉及C++软件工程代码级的内存泄露定位检测方法。
【背景技术】
[0002]目前,由于目前使用C++语言进行项目开发越来越广泛,比如图像校正、图像增强、图像采集、嵌入式开发,C++语言的优势在于能开发接近硬件底层操作的运用程序,得益于C++指针的使用,可以直接对计算机的内存进行读写和申请,因此开发出的运用程序具有运行速度快的特点,也正因为此,C++在内存使用上稍有不当,容易引起内存泄露事故,降低计算机运行性能,更有甚者,会引起程序的崩溃,导致严重后果,所以对C++进行内存泄露进行检测和定位就非常必须了。

【发明内容】

[0003]本发明目的在于提供了一种BoundsChecker的C++内存泄漏的检测、定位分析方法,能够有效对指针操作和内存、资源泄露错误、内存操作方面的错误、API函数使用错误进行检测,提高C++运用程序的可靠性和稳定性。
[0004]本发明采用的技术方案是:利用BoundsChecker工具集成于VC++集成开发环境中,编译运行开发程序,BoundsChecker给出错误检测结果列表,定位到C++内存泄漏代码,检测出指针操作和内存、资源泄露错误,内存操作方面的错误,API函数使用错误,给出错的明确提示信息。
[0005]本发明的有益效果是:能够提高C++运用程序的可靠性和稳定性。
【具体实施方式】
[0006]本发明的具体实施过程如下:
1.安装 BoundsChecker 7.2, BoundsChecker 集成于 VC++集成开发环境中。
[0007]2.在VC++集成开发环境中打开你所要测试的项目。
[0008]3.由于要使用BoundsChecker的编译连接器重新编译连接程序,所以我们为BoundsChecker独自构造一个文件夹,在VC++集成开发环境中,具体操作方法是:
A)点击[Build/Configurat1ns...]菜单命令;
B)在弹出的对话框中点击Ad按钮,在Configurat1n编辑框中添入BoundsChecker创建的文件夹的名称,这个名称是任意的,比如我们取名为BoundChecker ;
C)在Copysettings from组合框中选中XXX—Win32 Debug项,然后点击0K按钮,接着点击Close按钮,现在,我们已经为FinalCheck构造好了一个文件夹。
[0009]4.点击[Build/Set Active Configurat1n…]菜单命令,选中你刚才为BoundsChecker建的文件夹,然后点击0K按钮,这样BoundsChecker编译连接程序时生成的中间文件、可执行程序,都会被放到该文件夹下。
[0010]5.选择[BoundsChecker/Rebuild All with BoundsChecker]菜单命令,对程序重新进行编译连接,也就是在这时,BoundsChecker向被测程序的代码中加入了错误检测码,编译连接完成后,BoundsChecker会在你为BoundsChecker构造的文件夹中生成可执行文件,在FinalCheck模式下对程序进行检测的准备工作都已经做好,这时可以启动程序开始测试了,步骤与在ActiveChecker模式下没什么区别,具体步骤如下:
5.1确保VC++集成开发环境中[BoundsChecker/ Error Detect1n]菜单项和[BoundsChecker/ Log Events]菜单项处于选中状态,别外设置[BoundsChecker /Setting] Memory Tracking 选项中的 Enable FinalCheckt 为选中状态;
5.2点击[Build\Start Debug]菜单,选中“Go”菜单项,程序开始在Debug状态下运行,按照你制定好的测试用例,对程序进行操作。
[0011]5.3当BoundsChecker检测到了错误时,会弹出窗口向你汇报,你可以当时就进行处理,也可以等到你的操作全部完成,退出程序之后再对列出的这些错误进行分析,这完全取决于你是否选中了 [BoundsChecker/Display Error and Pause]菜单项;
5.4退出程序后,BoundsChecker会给出错误检测结果列表。
【主权项】
1.基于BoundsChecker的C++内存泄漏的检测方法,其特征在于:利用BoundsChecker工具集成于VC++集成开发环境中,编译运行开发程序,BoundsChecker给出错误检测结果列表,定位到C++内存泄漏代码,检测出指针操作和内存、资源泄露错误,内存操作方面的错误,API函数使用错误,给出错的明确提示信息。
【专利摘要】一种C++内存泄漏的检测方法,属于软件测试领域。其特征在于:利用BoundsChecker工具集成于VC++集成开发环境中,编译运行开发程序,BoundsChecker给出错误检测结果列表,定位到C++内存泄漏代码,提高C++运行程序的稳定性。其优点是:能够提高C++运用程序的可靠性和稳定性。
【IPC分类】G06F11/36
【公开号】CN105302712
【申请号】CN201410338527
【发明人】刘金虎, 徐教明
【申请人】南京普爱射线影像设备有限公司
【公开日】2016年2月3日
【申请日】2014年7月17日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1