专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Linux » 内存溢出:Linux下用Mtrace来检查程序内存溢出 »正文

内存溢出:Linux下用Mtrace来检查程序内存溢出

来源: 发布时间:星期四, 2009年2月12日 浏览:85次 评论:0


对于内存溢出的类麻烦可能大家在编写指针比较多复杂时候就会遇到Debug起来也是比较累人其实Linux系统下有个使用工具可以帮忙来调试这就是MtraceMtrace主要能够检测些内存分配和泄漏失败等下面我们来学习下它使用方法

使用Mtrace来调试有4个基本步骤需要用到GNU C 库里面些辅助功能

1. 在需要跟踪中需要包含头文件而且在最开始包含:mtrace由于在最开头了mtrace所以该进程后面切分配和释放内存操作都可以由mtrace来跟踪和分析

2. 定义个环境变量用来指示个文件该文件用来输出log信息如下例子:

$export MALLOC_TRACE=mymemory.log



3. 正常运行此时有关内存分配和释放操作都可以记录下来

4. 然后用mtrace使用工具来分析log文件例如:

$mtrace testmem $MALLOC_TRACE



下面是具体个例子大家可以看

[hwang@langchao test]$ cat testmtrace.c # # # { char *hello; mtrace; hello = (char*) malloc(20); sprf(hello," hello world!"); 1; } [hwang@langchao test]$export MALLOC_TRACE=mytrace.log [hwang@langchao test]$ gcc testmtrace.c -o testmtrace [hwang@langchao test]$./testmtrace [hwang@langchao test]$ mtrace testmtrace mytrace.log Memory not freed: ----------------- Address Size Caller 0x08049860 0x14 at /usr/src/build/53700-i386/BUILD/glibc-2.2.4/csu/init.c:0



0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: