教你如何检查inux操作系统的内存.docx 立即下载
2024-04-29
约1.4千字
约3页
0
11KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

教你如何检查inux操作系统的内存.docx

教你如何检查inux操作系统的内存.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

教你如何检查inux操作系统的内存教你如何检查inux操作系统的内存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-ftpftp://rpmfind.net/linux/redhat/9...-2.3.2-11.9.src.rpmrpm-ivhglibc*.src.rpmcd/usr/src/redhat/SPECS/rpmbuild-baglibc-9.speccd/var/tmp/glibc-2.3.2-root/usr/bin/cpmtrace/usr/bin/调试方法如下:via.c1#include23intmain()4{5mtrace();6malloc(10);7malloc(16);8return0;9}$gcc-ga.c#记得编译带-g调试选项$exportMALLOC_TRACE=a.log$./a.out$unsetMALLOC_TRACE#记得执行完后unset变量,否则可能运行其他命令可能覆盖log$mtracea.outa.logMemorynotfreed:-----------------AddressSizeCaller0x09b083780xaat/XXX/a.c:60x09b083880x10at/XXX/a.c:7可以看到,会显示未释放动态空间的代码具体位置。
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

教你如何检查inux操作系统的内存

文档大小:11KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用