linux安装系统内存检测,Ubuntu下安装内存检测工具Valgrind
Ubuntu下安装Valgrind很简单,直接从ubuntu软件中心下载安装,并且还会提供一个简单的图形界面。。当然,你也可以在命令行中使用。
Valgrind实际上是一个工具集,包含多个调试工具,如常用的memcheck,当程序日渐庞大时,内存泄漏是个很头疼的问题,可以使用如下命令,来检测:
valgrind --tool=memcheck --leak-check=yes ./main
其中./main是需要检测的程序。当程序运行结束或中止时,会打印出内存信息。
这是本人运行程序过程中强制终止的信息:
=3516== HEAP SUMMARY:
==3516== in use at exit: 691,535 bytes in 912 blocks
==3516== total heap usage: 1,168 allocs, 256 frees, 2,524,201 bytes allocated
==3516==
==3516== 8 bytes in 1 blocks are definitely lost in loss record 180 of 587
==3516== at 0x4026864: malloc (vg_replace_malloc.c:236)
==3516== by 0x804D636: AnalyzeCBlock (AnalyzePage.c:1706)
==3516== by 0x804DA51: AnalyzePage (AnalyzePage.c:1825)
==3516== by 0x80645DC: GetTGPFromSoGouBySA (wrapper.c:1148)
==3516== by 0x8068BB6: ExeOneDS (wrapper.c:2847)
==3516== by 0x8068F98: ExecuteDataSource (wrapper.c:2972)
==3516== by 0x80541BC: SearchPlan (SearchPlan.c:263)
==3516== by 0x8054847: ThreadFunction_Regular (UserRegular.c:105)
==3516== by 0x8052C14: wrapper_fn (ThreadPool.c:100)
==3516== by 0x4063E98: start_thread (pthread_create.c:304)
==3516== by 0x41475FD: clone (clone.S:130)
==3516==
==3516== 8 bytes in 1 blocks are definitely lost in loss record 181 of 587
==3516== at 0x4026864: malloc (vg_replace_malloc.c:236)
==3516== by 0x804D636: AnalyzeCBlock (AnalyzePage.c:1706)
==3516== by 0x804DA51: AnalyzePage (AnalyzePage.c:1825)
==3516== by 0x8065A70: GetAlbumFromBaiduBySinger (wrapper.c:1602)
==3516== by 0x8068BB6: ExeOneDS (wrapper.c:2847)
==3516== by 0x8068D99: ExecuteDataSource (wrapper.c:2916)
==3516== by 0x80541BC: SearchPlan (SearchPlan.c:263)
==3516== by 0x8054847: ThreadFunction_Regular (UserRegular.c:105)
==3516== by 0x8052C14: wrapper_fn (ThreadPool.c:100)
==3516== by 0x4063E98: start_thread (pthread_create.c:304)
==3516== by 0x41475FD: clone (clone.S:130)
..........................
.......
==3516==LEAK SUMMARY:
==3516== definitely lost: 768 bytes in 13 blocks
==3516== indirectly lost: 3,728 bytes in 134 blocks
==3516== possibly lost: 544 bytes in 4 blocks
==3516== still reachable: 686,495 bytes in 761 blocks
==3516== suppressed: 0 bytes in 0 blocks
==3516== Reachable blocks (those to which a pointer was found) are not shown.
==3516== To see them, rerun with: --leak-check=full --show-reachable=yes
==3516==
==3516== For counts of detected and suppressed errors, rerun with: -v
==3516== Use --track-origins=yes to see where uninitialised values come from
==3516== ERROR SUMMARY: 32 errors from 24 contexts (suppressed: 33 from 8)
在最后会给出统计信息,32个内存错误,看样子,www.linuxidc.com我有的忙了,不过幸好这个工具给出了具体出错的位置,不用花几天的功夫去检测!!!
以下是从网上摘录的
///
用法: valgrind [options] prog-and-args [options]: 常用选项,适用于所有Valgrind 工具
-tool= 最常用的选项。运行 valgrind 中名为toolname的工具。默认memcheck。
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= 输出LOG到描述符文件 [2=stderr]
-log-file= 将输出的信息写入到filename.PID的文件里,PID是运行程序的进行ID
-log-file-exactly= 输出LOG信息到 file
-log-file-qualifier= 取得环境变量的值来做为输出信息的文件名。 [none]
-log-socket=ipaddr:port 输出LOG到socket ,ipaddr:port
LOG信息输出
-xml=yes 将信息以xml格式输出,只有memcheck可用
-num-callers= show callers in stack traces [12]
-error-limit=no|yes 如果太多错误,则停止显示新错误? [yes]
-error-exitcode= 如果发现错误则返回错误代码 [0=disable]
-db-attach=no|yes 当出现错误,valgrind 会自动启动调试器gdb。[no]
-db-command= 启动调试器的命令行选项[gdb -nw %f %p]
适用于Memcheck工具的相关选项:
-leak-check=no|summary|full 要求对leak给出详细信息? [summary]
-leak-resolution=low|med|high how much bt merging in leak check [low]
-show-reachable=no|yes show reachable blocks in leak check? [no]
linux安装系统内存检测,Ubuntu下安装内存检测工具Valgrind相关推荐
- ubuntu安装python库_Python安装:如何在ubuntu下安装python库
上面介绍到了python安装中如何在Windows下按章python库,接下来上海python培训小编介绍另外一种方法:如何在ubuntu下安装python库. 在ubuntu下进行python库的安 ...
- 安装linux的系统分区格式化,Ubuntu下分区格式化U盘(fdiskmkfs)
前言 在Ubuntu下一般使用fdisk这个工具来格式化u盘,至于格式化u盘的原因必然是因为u盘本身的系统在需要使用人的机器上不能识别,例如window无法识别GPT文件系统的u盘,这也是我一个同事今 ...
- linux怎么配置ftp服务,Ubuntu下安装、配置FTP服务
续根据前两篇 http://www.linuxidc.com/Linux/2011-09/42775.htm 与 http://www.linuxidc.com/Linux/2011-09/42777 ...
- linux 安装jre和jdk,Ubuntu下安装JDK/JRE及问题的解决
由于license的原因,Ubuntu的发行版中不在包含Oracle(Sun)Java 6了,取而代之的是OpenJDK,这是Ubuntu默认的java版本,也是最易于安装. 但是偏偏有些应用特意强调 ...
- 联想v360安装linux双系统,V360在WIN7下安装XP双系统完美运行攻略.doc
V360在WIN7下安装XP双系统完美运行攻略 一准备工作1.准备安装工具:由于我们V360没有光驱,所以首先你准备一个USB光驱和XP系统安装盘,或者一个能启动电脑的U盘和一个XP系统的光盘镜像,我 ...
- 系统运维 | Ubuntu 下安装配置 samba 服务的详细过程
本文首发于 2014-08-05 10:14:48 1. Samba作用 Samba的主要任务就是实现Linux系统和Windows系统之间的资源共享.我们现在是要在Linux下配置Samba,让Wi ...
- linux安装深度播放器,Ubuntu下安装深度音乐播放器Dmusic
昨天尝试了Deepin 2014 alpche测试版本,除了Deepin自身做得很好外,深度原生的程序也很棒,包括深度媒体播放软件,深度视频.深度音乐,今天在我的Ubuntu系统上安装了Dmusic, ...
- linux源码阅读神器,Ubuntu下安装LXR Linux源代码阅读利器
1.安装apache2 sudo apt-get install apache2 2.安装lxr sudo apt-get install lxr 3. 在/etc/apache2/httpd.con ...
- linux 安装flash tar.gz,ubuntu下安装flash(tar.gz格式)
由于很多linux系统都是缺少flash插件的,想看个熊猫直播都看不了,赶紧装一个才行. 第一步,下载安装包 当然是进入官网 啦,选择 .tar.gz for linux ,然后点击download ...
最新文章
- 【每日一算法】单词接龙
- java postdelayed_你真的懂Handler.postDelayed()的原理吗?
- Mysql 索引原理及优化
- layui上传报错会有哪些原因_数据丢失如何恢复?哪些原因会导致数据丢失
- 软件架构设计学习总结(14):大型网站技术架构(八)网站的安全架构
- python模拟app抢票_python并发编程多进程 模拟抢票实现过程
- 基于IdentityServer的系统对接微信公众号
- 预期的异常规则和模拟静态方法– JUnit
- VC6中使用内存DC加载并显示JPG图片的注意事项
- Vue中生成二维码的一种方式—vue-qr
- 日志,错误日志,成功日志,日志是个好东西。
- php页面生成html页面显示,把当前显示的动态PHP页面静态化,生成HTML文件
- SAP License:实施SAP Business One-企业获得了哪些业务价值
- Scrapy分布式原理及Scrapy-Redis源码解析(待完善)
- 编写 iPhone Friendly 的 Web 应用程序 (Part 6 - iUI)
- spring 视频教程
- 我的世界java版forge怎么用_我的世界forge怎么安装
- dnf加点模拟器最新版85级版
- Origin中画折线图实现双X轴和双Y轴(双坐标轴)
- Pta题目集: 电话聊天狂人 (25 分)
热门文章
- (阿里云笔记)贝勾置阿里云轻量应用服务器CentOS7.6镜像——Linux系统
- C++函数与结构体——哥德巴赫猜想
- Visual Studio Code编辑器设置字号和行间距详细步骤
- 前端条码打印方案(表格+中文+一维码+二维码)
- EAUML日拱一卒-为类添加操作和方法
- 破解你的选择困难症——综合评价分析法
- 做一款属于自己的“签名设计软件”,外行玩儿过都说牛逼
- mysql创建存储过程及函数详解
- SQL Server中,删除表,删除表中数据
- # Revit2017二次开发遇到的调试问题