当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++ Builder教程

C++Builder内存泄漏检查工具-CodeGuard

一、为什么写这篇东西

自己在使用BCB5写一些程序时需要检查很多东西,例如内存泄漏、资源是否有释放等等,在使用了很多工具后,发觉BCB5本身自带的工具——CodeGuard,非常不错,使用也挺方便的,但是摸索了很久(以及翻查了一些资料,包括HELP)才算是会用了。写这篇文章的目的希望有这方面的问题的朋友可以借鉴一下,大家互相学习,共同进步。我的联系方法:Email:[email protected],希望志同道合的朋友来信互相交流。以下这篇文章算是拼凑出来的一篇文章,一些资料是在书上找的,一些是在HELP上看到了。

 

二、什么是CodeGuard

CodeGuard是在是C++Builder5才出现的一个工具。CodeGuard是C++Builder中一个程序在运行时期的检查器,用于检查内存或者资源的使用,以及函数调用的验证。

CodeGuard可以检测到以下的程序运行期错误:

l   非法的内存释放。

l   无效的句柄或者文件流。

l   非法指针。

l   使用已被释放的指针。

l   内存泄漏。

l   分配但最后没有释放的内存变量。

l   传递给函数的不正确的参数(包括VCL以及Win32函数)。

l   函数返回值的错误。(包括VCL以及Win32函数)。

例如:在应用程序中试图多次释放相同的资源(或者已经释放了的资源)、试图访问已经被释放的内存。

 

三、在BCB5中怎样使用CodeGuard——配置CodeGuard

如果要使用CodeGuard的话,必须有些代码编译进你的应用程序,所以在改变以下这些设置后。必须全部重新编译(切记切记!!!)。第一、打开应用程序的工程选项的CodeGuard页框,把CodeGuard Validation前面打勾 工程选项里,还有其他三个选项。第一个选项允许CodeGuard检查指向局部、全局和静态变量的无效指针和数据溢出。第二个选项允许CodeGuard检测对非法的(无效的、已删除的)对象的方法的调用。第三个选项允许CodeGuard验证内嵌指针的访问(在某些资料上说,开启这个选项会造成程序执行速度变得很慢,我测试过了,如果工程不是很大的话不是很明显,可以接受。)一般的调试是开打所有的选项(默认选择也是全部打开)。

通过CodeGuard的配置工具,可以配置CodeGuard的一些选项,在命令行方式执行CGCONFIG.EXE。可以见到一个对话框

共3页 首页 上一页 1 2 3 下一页 尾页 跳转到
相关内容
赞助商链接