北大青鸟郑州志远荣获2008年度市场开拓奖
3/6 上一条 下一条
当前位置:主页>LINUX>linux实用技巧用valgrind做内存检查(内存泄露等)

linux实用技巧用valgrind做内存检查(内存泄露等)

来源: 作者: 发布时间:2007-10-09


valgrind --tool=memcheck ls -l

不管是使用哪个工具,valgrind在开始之前总会先取得对你的程序的控制权,从可执行关联库里读取调试信息。然后在valgrind核心提供的虚拟CPU上运行程序,valgrind会根据选择的工具来处理代码,该工具会向代码中加入检测代码,并把这些代码作为最终代码返回给valgrind核心,最后valgrind核心运行这些代码。

如果要检查内存泄漏,只需要增加--leak-check=yes就可以了,命令如下

valgrind --tool=memcheck --leak-check=yes ls -l

不同工具间加入的代码变化非常的大。在每个作用域的末尾,memcheck加入代码检查每一片内存的访问和进行值计算,代码大小至少增加12倍,运行速度要比平时慢25到50倍。

valgrind模拟程序中的每一条指令执行,因此,检查工具和剖析工具不仅仅是对你的应用程序,还有对共享库,GNU C库,X的客户端库都起作用。

三、现在开始

首先,在编译程序的时候打开调试模式(gcc编译器的-g选项)。如果没有调试信息,即使最好的valgrind工具也将中能够猜测特定的代码是属于哪一个函数。打开调试选项进行编译后再用valgrind检查,valgrind将会给你的个详细的报告,比如哪一行代码出现了内存泄漏。

当检查的是C++程序的时候,还应该考虑另一个选项 -fno-inline。它使得函数调用链很清晰,这样可以减少你在浏览大型C++程序时的混乱。比如在使用这个选项的时候,用memcheck检查openoffice就很容易。当然,你可能不会做这项工作,但是使用这一选项使得valgrind生成更精确的错误报告和减少混乱。

一些编译优化选项(比如-O2或者更高的优化选项),可能会使得memcheck提交错误的未初始化报告,因此,为了使得valgrind的报告更精确,在编译的时候最好不要使用优化选项。

如果程序是通过脚本启动的,可以修改脚本里启动程序的代码,或者使用--trace-children=yes选项来运行脚本。

下面是用memcheck检查ls -l命令的输出报告,在终端下执行下面的命令

valgrind --tool=memcheck ls -l

程序会打印出ls -l命令的结果,最后是valgrind的检查报告如下:

==4187==
==4187== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 19 from 2)
==4187== malloc/free: in use at exit: 15,154 bytes in 105 blocks.
==4187== malloc/free: 310 allocs, 205 frees, 60,093 bytes allocated.
共5页: 上一页 [1] 2 [3] [4] [5] 下一页


上一篇:Linux下软件安装方法经验总结   下一篇:河南及其它省的网通用户redhat fedora core 5上网的方法
如果你想咨询课程、学费、就业、开班等情况!请拨打我们的咨询热线0371-66252525 或者点击QQ右侧的图标与我们在线老师咨询!

热点新闻

开班信息

班级 类型 状态
YS113 周末班 热招
TS137 专修班 热招
YS112 周末班 热招
TS136 专修班 余7座
YS111 周末班 余4座
TS135 专修班 余1座
TS134 专修班 已满

免费讲座

时间: 1月11日(本周日)14:00 内容:"黑客攻防"         "专家讲解职业规划" 抢座热线:0371-66252525 电话抢座    名额有限
北大青鸟就业案例
徐保金
学      历:大专
就职单位:金业集团
岗      位:网络工程师
    我是一名07年普通大专毕业的学生,毕业后心里很不踏实,对自己的前... >>详情

北大青鸟讲师
于江
毕业学校:天津大学
专      业:工学硕士
教学理念:晓之以理,动之以情,导之以行,持之以恒... >>详情

青鸟大事

人民日报、光明日报、中国青年报、中国计算机报等几十家媒体对公司进行了多方面的报道。
自成立以来,北大青鸟APTECH先后赢得了“中国IT公众认知企业金奖”、“本土最具知名度认证奖”、“最佳就业认同奖”、 “质量放心用户满意双优品牌”等数十个奖项;
2007年市场占有率达到38.6%(数据来源:IDC报告),成为中国IT职业培训领域不折不扣的领导品牌。
北大青鸟APTECH凭借自身的卓越表现,自2001年至2007年,已连续7年实现全国市场排名第一。
北大青鸟APTECH先进的教学方法、优质的教育产品和规范的经营管理模式已经得到了来自国际(ISO9001认证)、国内(劳动与社会保障部OSTA联合认证)的双重认可。
目前,公司已在全国20多个省份、自治区、直辖市的100余个重点城市发展了240余家授权培训中心,全体系教职员工10000余人,培养学员逾30万人,发展速度之快、经营规模之大、学员人数之多,在全国众多IT职业培训机构中一枝独秀。
所有中心实行统一经营管理、严格保证教学质量,受到社会和业界的高度认可。
公司采取特许经营的业务模式,在全国建立“北大青鸟APTECH计算机授权培训中心”。
在8年的发展历程中,公司依托北京大学雄厚的教育背景,在科学先进的管理经验、系统完美的教材编排、以人为本的课程设置的基础上,已发展成为中国现代信息技术教育领域的先锋。
公司服务于国内IT职业教育领域,致力于为中国IT产业培养技能型紧缺实用人才。
北京阿博泰克北大青鸟信息技术有限公司(简称“北大青鸟APTECH”) 成立于2000年1月,是北京大学青鸟集团与印度阿博泰克公司(APTECH)合资组建的专业IT职业教育公司。
  • 北大青鸟电话:0371-66252525
  • 教质服务热线:15890063901
  • 夜间咨询热线:13676985050
北大青鸟电子杂志