purify & memory leak
来源:互联网 发布:网络上赌博举报电话 编辑:程序博客网 时间:2024/06/03 18:10
程序代码中,内存错误包括两大类:内存访问错误,内存使用错误。
内存访问错误包括读内存错误,写内存错误。读内存错误可能使程序模块返回意想不到的结果,从而导致后续的程序模块运行异常。
内存使用错误主要指程序模块申请的内存没有正确释放,系统可用内存逐渐减少,使程序运行逐渐减慢,直至停止。
purify 主要检测以下内存错误:数组内存是否已经越界读/写,是否使用了未初始化的内存,是否对已释放的内存进行读/写,是否对空指针进行读/写,内存泄露等。
内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏
new会调用类的构造函数,“返回”的相应的类型 malloc只申请内存,返回的是void* delete只能和new配套使用 free只能与malloc(还有几个类似的函数)
Linux 下检查内存泄露
***静态分析工具 mtrace
1)在main.c代码中嵌入
#include <mcheck.h>
...
mtrace();
/*要检查是否有内存泄露的代码*/
muntrace();
2)编译运行
$gcc -o main main.c
$export MALLOC_TRACE=./log
//用环境变量定义一个文件log用于输出
$./main
$cat log
***动态分析
Valgrind
Memwatch
Electric fence
0 0
- purify & memory leak
- IBM Rational Purify 使用记录1-找不到memory leak之解决方案
- If IBM Rational Purify can check interactive process's memory leak ?
- IBM Rational Purify 在vs2003中 找不到memory leak之解决方案
- Memory Leak
- memory leak
- Memory leak
- detect memory leak macro
- detect memory leak macro
- Enabling Memory Leak Detection
- memory leak( 纯属备份)
- Pixbuf causes memory leak
- solaris memory leak
- Memory Leak分析分享
- memory leak in occi
- Detecting Memory Leak
- Memory leak finder
- java Memory Leak
- 虚拟机下ubuntu网络问题
- 二叉树的性质
- Leetcode17: Valid Palindrome
- 我的vim的vimrc配置文件,保存用
- 解决discuz不能添加插件导航模块的方法
- purify & memory leak
- Android中文文档:安装SDK
- linux下卸载mysql
- 自定义SpringContextHolder获取bean实例
- 当文本溢出时显示为省略号
- 各种initcall的执行先后顺序(module_init、postcore_initcall、arch_initcall、subsys_initcall、 fs_initcall)
- 中秋红烧瓦片塔
- Bochs常用调试命令
- android 横竖屏切换壁纸背景