内存泄漏的检测

来源:互联网 发布:c语言且或非符号 编辑:程序博客网 时间:2024/05/01 19:51

  今天这几天都在搞内存泄漏的问题,不过效果一般。

   刚开始采用symbian的 一个测试工具,名字叫做HookLogger,还是有一点作用的。至少可以判断自己的模块是否完全释放了申请的内存,好像别的用处没有奥,如果内存泄漏的时候,有一个地址什么的提示还好一点,可以用这个工具直接查看到地址调用的地方, 我也好跟踪定位一下。也可能是我对这个工具还不是很熟,还有一些其他的功能不会用。

工具下载地址:http://developer.symbian.com/main/tools/devtools/supported/hook_logger/index.jsp

  后来,又看了一下一个开源的单元测试框架(http://wiki.forum.nokia.com/index.php/%E4%BD%BF%E7%94%A8Symbian_OS_Unit%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E6%A1%86%E6%9E%B6%E8%BF%9B%E8%A1%8C%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95),但是苦于我们的软件类之间的耦合性较强,用该测试框架可能比较麻烦,要加很多的东西,算了,手工检查一下代码了。发现一个自己以前没有注意过的问题

RPointerArray<>iMyPointer;

 调用iMyPointer->Reset()不能释放所指向对象的内存,只能释放数组中的指针自身。如果要释放指向对象的内存需要调用ResetAndDestory(), 看来需要加强一下基础的东西了。

  项目发布前还在使用原始的方法进行检查,发现了一个泄漏的地方,通过一步步的代码排查才确定位置。

  真是累呀,需要好的方法。

原创粉丝点击