C/C++内存检测工具valgrind
valgrind是什么
用来检测C/C++程序中出现的内存问题
所有对内存的读写将会被检测
malloc() free() new() delete()
这些函数的调用都会被捕获
相关检测的内容
1.读写未初始化或已经释放的内存
2.读写范围超出动态分配的上限
3.数组越界
4.内存泄漏
5.非法的读写
6.malloc/free 或 new/delete 不匹配
7.拷贝内存时发生数据覆盖
使用方法
在编译程序的时候 打开调试模式(-g)显示行号
编译时关闭O1/O2等优化选项
检查C++程序时 可以加上选项 -fno-inline
gcc -g XXX.c -o XXX
valgrind --tool=memcheck --leak-check=full --log-file=./log.txt XXX
(XXX是可执行文件的名字)
执行 valgrind 命令后 会把相关日志写入 log.txt 文件内
演示
错误代码
#include<stdlib.h>int main(void)
{int* a = malloc(520*sizeof(int));a[520] = 1314;//数组下标越界 且 内存没有被释放return 0;
}
编译 执行valgrind过程
日志结果
分析原因
1.Invalid write of size 4
4字节大小内存的非法写入 对应a[520]=1314 数组越界
2.LEAK SUMMAYR 2080 bytes
内存泄漏2080字节 对应分配了520个int大小(520*4)的内存空间却没有释放
C/C++内存检测工具valgrind相关推荐
- 【调试】Linux下超强内存检测工具Valgrind
[调试]Linux下超强内存检测工具Valgrind 内容简介 Valgrind是什么? Valgrind的使用 Valgrind详细教程 1. Valgrind是什么? Valgrind是一套Lin ...
- 【Linux】内存检测工具Valgrind
内存检测工具Valgrind Valgrind是运行在Linux上的一套基于仿真技术的程序调试和分析工具,作者是获得过Google-O'Reilly开源大奖的Julian Seward,它包含一个内核 ...
- 动态内存检测工具Valgrind
1. Valgrind查找内存泄露利器 Valgrind是一个GPL的软件,用于Linux(For x86, amd64 and ppc32)程序的内存调试和代码剖析.你可以在它的环境中运行你的程序来 ...
- linux安装系统内存检测,Ubuntu下安装内存检测工具Valgrind
Ubuntu下安装Valgrind很简单,直接从ubuntu软件中心下载安装,并且还会提供一个简单的图形界面..当然,你也可以在命令行中使用. Valgrind实际上是一个工具集,包含多个调试工具,如 ...
- 内存检测王者之剑—valgrind
记得在大学的刚开始学习C/C++的时候,对于内存问题一点也没有关心过,其实也是关心比较少,知道后来才慢慢注意起来,当时排查是否有内存泄漏全靠手,去看看malloc和free或者new和delete是否 ...
- Ubuntu下内存泄露检测工具Valgrind的使用
在VS中可以用VLD检测是否有内存泄露,可以参考http://blog.csdn.net/fengbingchun/article/details/44195959,下面介绍下Ubuntu中内存泄露检 ...
- Windows和Linux内存检测工具:Valgrind,Visual Leak Detector,CppCheck, Cpplint
1 Linux内存泄漏检测工具Valgrind Valgrind简介 Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合.Valgrind由内核(core)以及基于内核 ...
- C++ 内存泄漏检测工具valgrind简单使用
C++ 内存泄漏检测工具valgrind简单使用 目录 C++ 内存泄漏检测工具valgrind简单使用 valgrind安装 valgrind测试内存泄漏 valgrind安装 通过软件商店下载: ...
- Linux:内存泄漏检测工具--Valgrind
在写大型C/C++工程时难免会发生内存泄漏现象,系统编程中一个重要的方面就是有效地处理与内存相关的问题.你的工作越接近系统,你就需要面对越多的内存问题.有时这些问题非常琐碎,而更多时候它会演变成一个调 ...
最新文章
- extern 定义_Essential Cython - 2.7 - 定义并使用模板函数
- python对象模型映射_看例子,学 Python(三)
- 山大计算机上机复试题目,2010年计算机复试上机 回忆
- 基于深度学习的中文语音识别系统框架(pluse)
- Python for 循环语句-Python 基础教程
- 领导公开对你有成见,关键在于是否影响公司决策
- A002-185-2531
- 等保与ISO27001
- Spring注解注入原理
- java 生成拼音_JAVA生成拼音码
- 转 留美博士生写给后来人的辛酸回忆:你适合读博士和搞科研吗?
- Python:try……excepted捕获方法
- Go 语言入门系列:指针的基本应用
- 【Web动画】SVG 线条动画入门
- 从国产浏览器更换到谷歌浏览器的心路历程
- Kafka 开启 ACLs 权限控制
- 域名转为服务器IP地址的几种方式
- linux创建用户张飞,Linux系统操作测试试题 部分
- DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020.
- 完全免费的中药管理软件