valgrind内存检测工具
valgrind 那点事
---------------------------------------
内存检测工具 valgrind
要使用此工具,可以使用--tool=memcheck 在Valgrind命令行上指定。也可以不用指定,因为Memcheck是默认工具。
Memcheck是一个内存错误检测器。它可以检测到C和C ++程序中常见的以下问题。
访问内存不应该,例如溢出和溢出堆块,溢出堆栈顶部,以及在释放内存后访问内存。
使用未定义的值,即未初始化的值或从其他未定义的值派生的值。
堆存储器的不正确释放,如双释放堆块,或错配的使用 malloc/ new/ new[] 与 free/ delete/delete[]
重叠src和 dst指针 memcpy以及相关的功能。
向size内存分配函数的参数传递一个腥意(推测为负值) 。
1.安装:
官网:
http://valgrind.org/
2.安装
[root@cf61420c928a soft]# .tar.bz2 [root@cf61420c928a soft]# .tar
查看README后得知:
[root@e46ae471064e valgrind-]# ./configure --prefix=/usr/local/valgrind [root@e46ae471064e valgrind-]# make [root@e46ae471064e valgrind-]# make install
show 版本
[root@e46ae471064e valgrind-]# /usr/local/valgrind/bin/valgrind --version valgrind- [root@e46ae471064e valgrind-]#
3.测试
==== ==== LEAK SUMMARY: ==== definitely lost: bytes blocks ==== indirectly lost: bytes blocks ==== possibly lost: , bytes blocks ==== still reachable: ,, bytes , blocks ==== suppressed: bytes blocks ==== Rerun with --leak-check=full to see details of leaked memory ==== ==== For counts of detected and suppressed errors, rerun with: -v ==== Use --track-origins=yes to see where uninitialised values come from ==== ERROR SUMMARY: errors from contexts (suppressed: from ) [root@cf61420c928a GetUrl]#
关于内存泄露
Memcheck将内存泄露分为两种,一种是可能的内存泄露(Possibly lost),另外一种是确定的内存泄露(Definitely lost)。Possibly lost 是指仍然存在某个指针能够访问某块内存,但该指针指向的已经不是该内存首地址。Definitely lost 是指已经不能够访问这块内存。而Definitely lost又分为两种:直接的(direct)和间接的(indirect)。直接和间接的区别就是,直接是没有任何指针指向该内存,间接是指指向该内存的指针都位于内存泄露处。--https://www.ibm.com/developerworks/cn/linux/l-cn-valgrind/index.html
valgrind内存检测工具的更多相关文章
- c++Valgrind内存检测工具---19
原创博文,转载请标明出处--周学伟 http://www.cnblogs.com/zxouxuewei/ 一.Valgrind 概述 Valgrind是一套Linux下,开放源代码(GPL V2)的 ...
- 【调试】Linux下超强内存检测工具Valgrind
[调试]Linux下超强内存检测工具Valgrind 内容简介 Valgrind是什么? Valgrind的使用 Valgrind详细教程 1. Valgrind是什么? Valgrind是一套Lin ...
- linux下内存检测工具的使用和对比
linux背后隐藏着各种丰富的工具,学会这些工具,让这些工具更好地服务于我们的项目开发,不仅可以提高工作的效率,而且可以增强个人技术力. 参考:http://blog.chinaunix.net/ui ...
- Android 内存泄露总结(附内存检测工具)
https://segmentfault.com/a/1190000006852540 主要是分三块: 静态储存区:编译时就分配好,在程序整个运行期间都存在.它主要存放静态数据和常量. 栈区:当方法执 ...
- C/C++内存检测工具Valgrind
内存检测Valgrind简介 Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,作者是获得过Google-O'Reilly开源大奖的Julian Seward, 它包含一个内核 ...
- c程序内存检测工具 - Valgrind
常用C程序内存泄露检测工具 https://blog.csdn.net/u012662731/article/details/78652651
- windows下内存检测工具
1.Intel的Parallel Inspector工具,和vs集成超好, 而且还带了线程检测工具. 2.Purifyhttps://www.cnblogs.com/hehehaha/archive/ ...
- Visual Leak Detector 2.2.3 Visual C++内存检测工具
Visual Leak Detector是一款免费的.健全的.开源的Visual C++内存泄露检测系统.相比Visual C++自带的内存检测机制,Visual Leak Detector可以显 ...
- iOS一个很好的内存检测工具
虽然Xcode提供了instrument来检测内存,但是使用起来怎么看都很麻烦.然后有一个很不错的内存泄露的检测工具MLeaksFinder,使用的话不需要注入任何代码,直接导入库就行了.出现泄露的时 ...
随机推荐
- vuex教程,vuex使用介绍案例
1.demopageaction: import Vue from "vue"; import Store from "../../store.js"; imp ...
- DBsever工具连接mysql数据库
当我们安装网DBeaver的时候,怎么通过这个工具来连接Mysql数据库呢 像这个地方就按平时你的数据库信息输入就可以了 接下来配置JDBC的内容 重点说一下驱动包的版本问题,因为我安装的mysql是 ...
- 199. Spring Boot JNDI:这是虾米?
[视频&交流平台] àSpringBoot视频:http://t.cn/R3QepWG à SpringCloud视频:http://t.cn/R3QeRZc à Spring Boot源 ...
- Android 开发 系统组件集合
常用的TextView.Button.ImageView和几个常用布局就不介绍了,我们介绍一些特别好用但是常常忘记的组件. 标题栏组件 <androidx.appcompat.widget.To ...
- win7激活成功 但每次开机后又显示此windows副本不是正版的解决办法
进入命令行界面,输入 SLMGR -REARM 命令,点击回车 此方法只是暂时激活系统,大概4个月左右,即要使用此方法再次进行激活
- Xeon Phi 《协处理器高性能编程指南》随书代码整理 part 2
▶ 第四章,逐步优化了一个三维卷积计算的过程 ● 基准代码 #include <stdio.h> #include <stdlib.h> #include <string ...
- powerdesigner 基本概念
PowerDesigner是Sybase的企业建模和设计解决方案,采用模型驱动方法,将业务与IT结合起来,可帮助部署有效的企业体系架构,并为研发生命周期管理提供强大的分析与设计技术.PowerDesi ...
- 工作流调度器azkaban
为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 各任务单元之间存在时间先后及前后依赖关系 为了很 ...
- LevelDB源码分析-Get
Get LevelDB提供了Get接口用于给定key的查找: Status DBImpl::Get(const ReadOptions &options, const Slice &k ...
- java.lang.String (JDK1.8)
String类实现了java.io.Serializable, Comparable<String>, CharSequence这三个interface. 看了下这三个interface中 ...