一、概述
Memcheck是一个内存错误检测器。它可以检测C和C ++程序中常见的以下问题:
1、非法内存:如越界、释放后继续访问;
2、使用未初始化的值;
3、释放内存错误:如double-free(同一内存上执行了两次free)、或者 malloc、new、new[] 与 free、delete、delete[]错配使用
4、memcpy函数(或其它相关函数)中src和dst指针重叠;
5、分配函数时,传递的size参数非法,如果是一个负数;
6、内存泄漏。
像这样的问题很难通过其他方式找到,经常长时间未被发现,然后造成偶然的,难以诊断的崩溃。
二、Memcheck中错误消息的含义详解
1、Invalid read of size 4
含义:非法读取或写入错误。
例子,main.c源码如下
#include <stdio.h>#