Dr. Memory内存检测工具

版权声明:本文为博主原创文章,转载注明出处。 https://blog.csdn.net/s_lisheng/article/details/79224934

Dr. Memory 是一个开源免费的内存检测工具,它能够及时发现内存相关的编程错误,比如未初始化访问、内存非法访问以及内存泄露等。与 Valgrind 类似,可以直接检查已经编译好的可执行文件。用户不用改写被检查程序的源代码,也无须重新链接第三方库文件,使用起来非常方便。


安装

在Linux下安装参考Installing on Linux.

使用示例
示例程序1:
#include <stdio.h>

int main(){
	// 对空指针指向的内存区域写,会发生段错误
	int *null_ptr = NULL;
	*null_ptr = 10;

	return 0;
}

编译程序,编译时添加-g,以产生调试信息。使用drmemory -- <your program> args进行检测。
在这里插入图片描述

示例程序2:
#include <stdlib.h>

void f(void) {
   int* x = malloc(10 * sizeof(int));
   x[10] = 0;        // problem 1: heap block overrun
}                    // problem 2: memory leak -- x not freed

int main(void) {
   f();
   return 0;
}

运行后结果如下:
在这里插入图片描述
可以看到2个内存错误都检测到了。

更多选项可参考drmemory -help

猜你喜欢

转载自blog.csdn.net/s_lisheng/article/details/79224934