仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 330|回复: 8
打印 上一主题 下一主题

[其他Linux] 来看看:关于Linux体系下内存泄露的反省办法

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 16:45:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
买一本命令参考手册是必要的,遇到不知道怎么用的命令可以随时查询,这要比查man文档快.特别适合英语不好。
1.在必要内存泄露反省的代码的入手下手挪用voidmtrace(void)(在mcheck.h中?有声明)。mtrace为malloc等函数安装hook,用于纪录内存分派信息。在必要内存泄露反省的代码的停止挪用voidmuntrace(void)。
 
  注重:一样平常情形下不要挪用muntrace,而让程序天然停止。由于大概有些开释内存代码要到muntrace以后才运转。
 
  2.用debug形式编译被反省代码(-g或-ggdb)
 
  3.设置情况变量MALLOC_TRACE为一文件名,这一文件将存有内存分派信息。
 
  4.运转被反省程序,直至停止或muntrace被挪用。
 
  5.用mtrace命令剖析内存分派Log文件($MALLOC_TRACE)
 
  (mtracefoo$MALLOC_TRACE,wherefooistheexecutiblename)
 
  假如有内存泄露,mtrace会输入分派泄露
 
  内存的代码地位,和分派数目。
 
  附加申明
 
  1.能够将mtrace,muntrace放进旌旗灯号处置函数(USR1,USR2),以静态地举行内存泄露反省把持。
 
  2.mtrace是个perl代码,假如你对标记地点与代码文本的转换感乐趣,能够读一下。
 
  3.again,只管不要用muntrace()
 
  ForC++Leak:
 
  反省内存泄露的办法除glibc供应外;还能够尝尝一些公用的程序。
 
  很奇异,redhat9竟然不带mtraceperl剧本,只好下载gcc源码编译了
 
  wget――passive-ftplinux/redhat/9">ftp://rpmfind.net/linux/redhat/9……-2.3.2-11.9.src.rpm
 
  rpm-ivhglibc*.src.rpm
 
  cd/usr/src/redhat/SPECS/
 
  rpmbuild-baglibc-9.spec
 
  cd/var/tmp/glibc-2.3.2-root/usr/bin/
 
  cpmtrace/usr/bin/
 
  调试办法以下:
 
  via.c
 
  1#include
 
  2
 
  3intmain()
 
  4{
 
  5mtrace();
 
  6malloc(10);
 
  7malloc(16);
 
  8return0;
 
  9}
 
  $gcc-ga.c#记得编译带-g调试选项
 
  $exportMALLOC_TRACE=a.log
 
  $./a.out
 
  $unsetMALLOC_TRACE#记得实行完后unset变量,不然大概运转其他命令大概掩盖log
 
  $mtracea.outa.log
 
  Memorynotfreed:
 
 -----------------
 
  AddressSizeCaller
 
  0x09b083780xaat/XXX/a.c:6
 
  0x09b083880x10at/XXX/a.c:7
 
  能够看到,会显现未开释静态空间的代码详细地位</p>
无论图形界面发展到什么水平这个原理是不会变的,Linux命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。
乐观 该用户已被删除
沙发
发表于 2015-1-18 16:57:43 | 只看该作者
Linux操作系统这个名词记得在很早以前就听过,但当时并不知道具体是什么样的操作系统,只知道是一个与嵌入式密切相关的操作系统。
若相依 该用户已被删除
板凳
发表于 2015-1-24 20:10:47 来自手机 | 只看该作者
现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。
再现理想 该用户已被删除
地板
发表于 2015-2-2 14:28:47 | 只看该作者
在学习linux的工程中,linux学习方法有很多种,这里是小编的学习心得,给大家拿出来分享一下。
变相怪杰 该用户已被删除
5#
发表于 2015-2-7 22:54:50 | 只看该作者
硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区。
再见西城 该用户已被删除
6#
发表于 2015-2-23 16:52:20 | 只看该作者
我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟内存的分配过程等一些OS管理。
蒙在股里 该用户已被删除
7#
发表于 2015-3-7 09:50:07 | 只看该作者
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
深爱那片海 该用户已被删除
8#
发表于 2015-3-14 22:17:13 | 只看该作者
不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。
简单生活 该用户已被删除
9#
发表于 2015-3-21 15:55:32 | 只看该作者
学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 10:53

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表