开源工具之valgrind
- Preparing your program
Compile your program with -g to include debugging information so that Memcheck's error messages include exact line numbers.
-O0 a good idea if you can tolerate the slowdown
-O1 line number in error message can be inaccurate although generally speaking running Memcheck on code compiled at -O1 works fairly well and the speed improvement compared to running -O0 is quite significant.
-O2 not recommended - Running your program under Memcheck
./myprog arg1 arg2
valgrind --leak-check=yes ./myprog arg1 arg2
your program will run much slower(eg. 20 to 30 times) than normal and use a lot more memory.
然后使用valgrind:
用法: valgrind [options] prog-and-args [options]: 常用选项,适用于所有Valgrind工具
常用选项
- --tool=[default: memcheck]
--tool=memcheck:要求用 memcheck这个工具对程序进行分析 - --log-file=filename
将输出的信息写入到filename.PID 的文件里,PID是运行程序的进行ID - --log-file-exactly=filename
指定就输出到 filename文件 - --log-socket=IP:PORT
把输出信息发送到网络中指定的IP:PORT 去 - --leak-ckeck=yes
要求对leak给出详细信息 - --leak-check=full
完全检查内存泄漏 - --xml=[default: no]
将信息以xml格式输出,只有 memcheck可用 - --gen-suppressions=[default: no]
如果为yes, valgrind会在每发现一个错误便停下让用户做选择是继续还是退出 - --leak-check=[default: summary]
Leak是指,存在一块没有被引用的内存空间,或没有被释放的内存空间,如 summary,只反馈一些总结信息,告诉你有多少个malloc ,多少个free 等;如果是full 将输出所有的leaks,也就是定位到某一个malloc/free 。 - --show-reachable=[default: no]
如果为 no,只输出没有引用的内存leaks,或指向 malloc返回的内存块中部某处的leaks - --undef-value-errors=[default: yes]
如果为 yes,memcheck将对无定义值错进行检查
开源工具之valgrind相关推荐
- Unix下C程序内存泄露检测工具:valgrind的安装使用
Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Goo ...
- C++ performance 性能分析工具(sanitizers valgrind gprof gperftools perf)的使用
文章目录 1. time 2. Sanitizers 2.1 内存泄漏`-fsanitize=leak` 2.2 地址错误 `-fsanitize=address` 3. Valgrind 工具集 3 ...
- docker logstash_用于监视Kubernetes和Docker的六大开源工具
Kubernetes和Docker是在DevOps圈中最常听到的两个词.Docker是一个工具,它使你能够以容器化的方式运行应用程序,Kubernetes是一个用于编排.管理容器的平台--如果你想使用 ...
- 杂谈 | 当前知识蒸馏与迁移学习有哪些可用的开源工具?
所有参与投票的 CSDN 用户都参加抽奖活动 群内公布奖项,还有更多福利赠送 作者&编辑 | 言有三 来源 | 有三AI(ID:yanyousan_ai) [导读]知识蒸馏与迁移学习不仅仅属于 ...
- 21个必须知道的机器学习开源工具!
作者 | SebastianScholl 译者 | 刘静,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 本文将介绍21种用于机器学习的开源工具. 以下为译文: 你肯定已经了解流行的开源 ...
- 科技公司最常用的50款开源工具,提升你的逼格~
点击关注上方"视学算法",设为"置顶或星标",第一时间送达技术干货. 本文介绍了多款知名的开源应用软件,科技公司可以用它们来管理自己的 IT 基础设施.开发产品 ...
- 如何提升 Linux 服务器安全的开源工具和技巧?
本文基于我作为初学者迄今所学的知识,详细介绍了六个简单的步骤,以提高个人使用的 Linux 环境的安全性.在我的整个旅程中,我利用开源工具来加速我的学习过程,并熟悉了与提升 Linux 服务器安全有关 ...
- 官方iPhone SDK和开源工具链
当Jobs宣称"iPhone SDK提供的是和苹果内部开发人员使用的相同的工具"时,他显然忘了在iPhone SDK发布之前几个月,就有人开始使用开源的Open Tool Chai ...
- 这10个机器学习开源工具,你用过吗?
作为机器学习开发人员,你可能已经接触到很多机器学习资源,今天给大家介绍10个机器学习开源工具,有很多都是可以在项目中使用的工具,如果有帮到你的话,欢迎转发收藏. 1.AutoML AutoML是一款 ...
最新文章
- 利用OpenCV的convexHull和convexityDefects做凸包(凸壳)检测及凸包(凸壳)的缺陷检测
- linux编程基础_第1篇 Linux系统编程 -多线程基础
- 鼓浪屿天气预报软件测试,厦门鼓浪屿天气预报15天
- 中国光纤管理解决方案市场发展分析及十四五规划咨询建议报告2022年版
- 多线程与网络之NSURLConnection发送请求
- hdfs 操作 入门api
- 地址已经被使用——Address already in use(来自《后台开发:核心技术于应用实践》)
- java提升权限运行_提升代码的运行权限,实现模拟管理员身份的功能
- Android应用程序版本号管理(官方文档中文版) 2011-08-07 22:03:36
- java的ArrayList分析
- 考研数据结构程序题常见代码【C语言实现】
- 人工智能面试问题整理
- 获取QQ好友列表、QQ分组信息、QQ群成员数据接口实现
- DPDK 无锁ring, 详解
- 针孔相机畸变成像详解
- 青少年编程究竟应该从什么语言学起?
- 大连三家软件企业入围全国软件百强排行榜
- 浅谈设计模式(一)策略模式
- java实现高德地图app,Android 高德地图入门demo,最新高德地图实现方法,附源码及apk...
- 白鲸开源代立冬:一年5个孵化项目来自于中国,佛系Apache如何帮助中国开源立足全球?
热门文章
- Linux那些事儿 之 戏说USB(6)好戏开始了
- 在Ubuntu 16.04.1 LTS上安装ats 5.3.2
- CSS、JavaScript、PHP和Python编程合二为一
- Rocksdb 的 BlobDB key-value 分离存储插件
- 修改ceph crush map,并指定到资源池
- QT 中使用 OpenCv 的 CascadeClassifier 报错
- linux valgrind memCheck ---内存检查工具的可视化方法valkyrie
- MyBatis中#{}和${}的区别
- sleep和wait到底什么区别
- USACO JANUARY——矩形[rects]