Valgrind 介绍和使用

Linux 下内存泄漏检测工具首选必须是 Valgrind
https://valgrind.org/downloads/ 最新版本 Valgrind 3.21.0
Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,它包含一个内核──一个软件合成的CPU,和一系列的小工具,每个工具都可以完成一项任务──调试,分析,或测试等。Valgrind可以检测内存泄漏和内存违例,还可以分析cache的使用等。
内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构如下图所示:

主要介绍Valgrind的一些简单用法。更多详细的使用方法可以访问valgrind的主页:http://www.valgrind.org。

Valgrind概述

它一般包含下列工具:

Memcheck

最常用的工具,用来检测程 序中出现的内存问题,所有对内存的读写都会被检测到,一切对malloc()/free()/new/delete的调用都会被捕获。所以,它能检测以下问题:

  1. 对未初始化内存的使用;
  2. 读/写释放后的内存块;
  3. 读/写超出malloc分配的内存块;
  4. 读/写不适当的栈中内存块;
  5. 内存泄漏,指向一块内存的指针永远丢失;
  6. 不正确的malloc/free或new/delete匹配;
  7. memcpy()相关函数中的dst和s

你可能感兴趣的:(嵌入式内核学习,valgrind,linux,内存泄漏)