【linux】Valgrind工具集详解(七):Memcheck(内存错误检测器)

一、概述

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>
#

版权声明:本文为u010168781原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。