Valgrind工具------可以分析内存泄漏
Valgrind 是个开源的工具,功能很多。例如检查内存泄漏工具---memcheck。
安装:
1)官网下载:http://www.valgrind.org/downloads/ , 下载tar.bz2之后,可以传送到linux。更方便的是用linux的wget命令直接下载: wget ftp://sourceware.org/pub/valgrind/valgrind-3.13.0.tar.bz2,wget后面的下载地址,鼠标右击网站上的文件名,赋值链接即可。
2)tar -jxvf valgrind-3.13.0.tar.bz2
3)参照其README文件,按照指示安装:
To install from a tar.bz2 distribution:
a. Run ./configure, with some options if you wish. The only interesting one is the usual --prefix=/where/you/want/it/installed.
我令prefix=/usr/local/valgrind3.13.0,这样所有的安装文件都在这个目录,卸载时只要删除这个文件即可。
b. Run "make".
c. Run "make install", possibly as root if the destination permissions require that.
d. See if it works. Try "valgrind ls -l". Either this works, or it bombs out with some complaint. In that case, please let us know
(see www.valgrind.org).
安装完成后,在terminal能自动识别valgrind指令,应该是在安装过程中自动加入了环境变量吧,执行make install时要求我以root身份啦。
Important! Do not move the valgrind installation into a place different from that specified by --prefix at build time. This will
cause things to break in subtle ways, mostly when Valgrind handles fork/exec calls.
用法:
valgrind [options] prog-and-args
[options]: 常用选项,适用于所有Valgrind工具
-tool=<name> 最常用的选项。运行 valgrind中名为toolname的工具。默认memcheck。
memcheck ------> 这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况, 比如:使用未初始化的内存,使用已经释放了的内存,内存访问越界等。
callgrind ------> 它主要用来检查程序中函数调用过程中出现的问题。
cachegrind ------> 它主要用来检查程序中缓存使用出现的问题。
helgrind ------> 它主要用来检查多线程程序中出现的竞争问题。
massif ------> 它主要用来检查程序中堆栈使用中出现的问题。
extension ------> 可以利用core提供的功能,自己编写特定的内存调试工具
-h –help 显示帮助信息。
-version 显示valgrind内核的版本,每个工具都有各自的版本。
-q –quiet 安静地运行,只打印错误信息。
-v –verbose 更详细的信息, 增加错误数统计。
-trace-children=no|yes 跟踪子线程? [no]
-track-fds=no|yes 跟踪打开的文件描述?[no]
-time-stamp=no|yes 增加时间戳到LOG信息? [no]
-log-fd=<number> 输出LOG到描述符文件 [2=stderr]
-log-file=<file> 将输出的信息写入到filename.PID的文件里,PID是运行程序的进行ID
-log-file-exactly=<file> 输出LOG信息到 file
-log-file-qualifier=<VAR> 取得环境变量的值来做为输出信息的文件名。 [none]
-log-socket=ipaddr:port 输出LOG到socket ,ipaddr:port
REF:
https://www.cnblogs.com/AndyStudy/p/6409287.html
Valgrind工具------可以分析内存泄漏的更多相关文章
- Atitit.提升稳定性-----分析内存泄漏PermGen OOM跟解决之道...java
Atitit.提升稳定性-----分析内存泄漏PermGen OOM跟解决之道...java 1. 内存区域的划分 1 2. PermGen内存溢出深入分析 1 3. PermGen OOM原因总结 ...
- 使用Memory Analyzer tool(MAT)分析内存泄漏(二)
转载自:http://www.blogjava.net/rosen/archive/2010/06/13/323522.html 前言的前言 写blog就是好,在大前提下可以想说什么写什么,不像投稿那 ...
- 使用Memory Analyzer tool(MAT)分析内存泄漏
前言的前言 写blog就是好,在大前提下可以想说什么写什么,不像投稿那么字字斟酌.上周末回了趟成都办事,所以本文来迟了.K117从达州经由达成线往成都方向走的时候,发现铁路边有条河,尽管我现在也不知道 ...
- 【转】如何使用MAT分析内存泄漏
原文链接:http://www.lightskystreet.com/2015/09/01/mat_usage/ MAT - Memory Analyzer Tool 使用进阶 Sep 1, 2015 ...
- 性能监控 | MAT分析内存泄漏
使用MAT分析内存泄漏(二)八周年重印版 - 知乎 .u-safeAreaInset-top { height: constant(safe-area-inset-top) !important; h ...
- 使用androidstudio 分析内存泄漏
分析内存泄漏 http://www.jianshu.com/p/c49f778e7acf
- 如何使用memstat 插件分析内存泄漏问题
对于内存泄漏问题,如何分析并找到内存泄漏的原因是个难点.KingbaseES 提供了memstat 扩展插件用于分析内存泄漏的原因. 一.使用 memstat 插件 1.修改shared_preloa ...
- 使用Memory Analyzer tool(MAT)分析内存泄漏(一)
转载自:http://www.blogjava.net/rosen/archive/2010/05/21/321575.html 前言 在平时工作过程中,有时会遇到OutOfMemoryError,我 ...
- android 中如何分析内存泄漏
转载:http://blog.csdn.net/fulinwsuafcie/article/details/8363218 前提条件: 1,电脑安装了java 运行环境 2,手机端开启了 USB 调试 ...
随机推荐
- [WEB安全]SSRF中URL的伪协议
当我们发现SSRF漏洞后,首先要做的事情就是测试所有可用的URL伪协议 0x01 类型 file:/// dict:// sftp:// ldap:// tftp:// gopher:// file: ...
- 【CSP模拟赛】独立集(最长上升子序列&大力猜结论)
题目描述 有一天,一个名叫顺旺基的程序员从石头里诞生了.又有一天,他学会了冒泡排序和独 立集.在一个图里,独立集就是一个点集,满足任意两个点之间没有边.于是他就想把这两 个东西结合在一起.众所周知,独 ...
- ubuntu之路——day7.3 normalizing input(加快迭代速度)
输入归一化 1,对每个特征零均值化 2,对每个特征归一化方差 注意:训练集和测试集要使用相同的均值和方差去归一化. 原本狭长的优化函数,要找到最小值,需要设置较小的学习率,并且进行多次迭代:而归一化以 ...
- 【转】npm 安装express npm ERR! code UNABLE_TO_VERIFY_LEAF_SIGNATURE
npm 安装 express 出现 npm ERR! code UNABLE_TO_VERIFY_LEAF_SIGNATUREnpm ERR! errno UNABLE_TO_VERIFY_LEA ...
- sqlite3 查看Cookie文件<转>
原帖地址:https://blog.csdn.net/yygydjkthh/article/details/37604309 .使用命令对此数据库进行打开: $ sqlite3 cookies.sql ...
- Github: 提升Github下载速度
通过修改hosts文件来提速(该方法也可加速其他因为CDN被屏蔽导致访问慢的网站) 第一步:获取GitHub的IP地址 通过访问:http://tool.chinaz.com/dns或者https:/ ...
- tomcat NIOEndpoint中的Acceptor实现
EndPoint的组件就是属于连接器Connector里面的.它是一个通信的端点,就是负责对外实现TCP/IP协议.EndPoint是个接口,它的具体实现类就是AbstractEndpoint,而Ab ...
- flutter State管理
import 'package:flutter/material.dart'; import 'package:scoped_model/scoped_model.dart'; class State ...
- nginx多层反向代理获取客户端真实ip
访问路径: 用户 --> www.chinasoft.cn(nginx反向代理) --> www.chinasoft.com(nginx反向代理) --> python服务端程序 经 ...
- 线程池+同步io和异步io(浅谈)
线程池+同步io和异步io(浅谈) 来自于知乎大佬的一个评论 我们的系统代码从同步方式+线程池改成异步化之后压测发现性能提高了一倍,不再有大量的空闲线程,但是CPU的消耗太大,几乎打满,后来改成协程化 ...