本文最后更新于:2020年7月2日 晚上
* 这篇来学习一下Linux中的一个命令——mtrace,它是怎么用的呢?一起来看看。。。→_→ *
内存泄漏代码
#include <stdio.h>
int main()
{
int *p = NULL;
p = (int *)malloc(sizeof(int) * 1);
//free(p);
return 0;
}
这代码太简单了。。。不解释。。
mtrace命令的使用
将环境变量MALLOC_TRACE设置为所需输出文件的路径名
在源代码中引入
mcheck.h
头文件
#include <mcheck.h>
在分配内存之前调用
mtrace();
,一般在main函数的开头调用在结束检测的地方调用
muntrace();
,一般在return之前调用编译程序时需要加上
-g
选项,内存泄漏信息将在MALLOC_TRACE环境变量指定的文件中报告,需要使用mtrace命令将信息转换
//mtrace <exec_file_name> <malloc_trace_filename>
mtrace text meminfo.txt
Memory not freed:
-----------------
Address Size Caller
0x08049910 0x4 at /home/Zhang/Desktop/Linux/20170830/test.c:10
源代码
1 #include <stdio.h>
2 #include <malloc.h>
3 #include <mcheck.h>
4
5 int main()
6 {
7 mtrace();
8 int *p = NULL;
9
10 p = (int *)malloc(sizeof(int) * 1);
11
12 //free(p);
13
14 muntrace();
15 return 0;
16 }
* 是不是很简单。。。嗯。。。→_→ *
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!