valgrind linux内存监测工具-面试被问三次

下载地址:

wget http://www.valgrind.org/downloads/valgrind-3.14.0.tar.bz2

解压:

tar -jxvf valgrind-3.14.0.tar.bz2 
cd valgrind-3.2.3

运行./autogen.sh设置环境(需要标准的autoconf工具)(可选)

./autogen.sh

;配置Valgrind,--prefix=    默认位置在MakeFile文件配置下 /usr/local   自己可以手动修改

./configure

编译Valgrind

Make;

安装Valgrind

make install;

 

Valgrind包括如下一些工具:

(1) Memcheck ,这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,比如:使用未初始化的内存,使用已经释放了的内存,内存访问越界等。这也是本文将重点介绍的部分。

(2) Callgrind ,它主要用来检查程序中函数调用过程中出现的问题。

(3) Cachegrind ,它主要用来检查程序中缓存使用出现的问题。

(4) Helgrind ,它主要用来检查多线程程序中出现的竞争问题。

(5) Massif ,它主要用来检查程序中堆栈使用中出现的问题。

(6) Extension ,可以利用core提供的功能,自己编写特定的内存调试工具。 

案例:

准备一个.c 程序

g++ -o test nagleTest.c 

 运行

valgrind  --tool=memcheck  --leak-check=full  --undef-value-errors=yes  --track-fds=yes  ./a.out 

下标越界测试-和socket 套接字未关闭---经测试栈空间数组越界无法测出

数组越界错误

  7     int *arr=(int*)malloc(12);
  8     printf("%d\n ",arr[14]);
  9     free(arr);

堆空间未释放

 

参考:https://blog.csdn.net/u011673143/article/details/41781217

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值