zoukankan      html  css  js  c++  java
  • valgrind检测内存泄露

    简介:
          valgrind检测内存泄露工具。功能非常强大,具体详见http://www.valgrind.org/
          这里只介绍内存检测部分。

         参考实例:

          http://www.ibm.com/developerworks/cn/linux/l-cn-valgrind/

    安装:
         ① 下载
              http://www.valgrind.org/
         ② 安装
             tar jxvf valgrind-3.8.1.tar.bz2
             cd valgrind-3.8.1
             ./configure --prefix=/usr
             make
             make install
     
    使用:
          valgrind --tool=memcheck --leak-check=full ./test
          参照:
          http://www.valgrind.org/docs/manual/quick-start.html

    实例:
         ① 手顺
             gcc test.c -o test
             valgrind --tool=memcheck --leak-check=full ./test
     
     ② 代码

     1  //gcc test.c -o test
     2  #include <stdio.h>
     3  #include <stdlib.h>
     4  #include <string.h>
     5  int main(int argc, char **argv)
     6  {
     7    char *string;
     8    string = (char*)malloc(sizeof(char));
     9    string = (char*)malloc(sizeof(int*));
    10    return 0;
    11  }

     ③ 解析结果

     ==13226== Memcheck, a memory error detector
    ==13226== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
    ==13226== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
    ==13226== Command: ./test
    ==13226==
    ==13226==
    ==13226== HEAP SUMMARY:
    ==13226==     in use at exit: 5 bytes in 2 blocks
    ==13226==   total heap usage: 2 allocs, 0 frees, 5 bytes allocated
    ==13226==
    ==13226== 1 bytes in 1 blocks are definitely lost in loss record 1 of 2
    ==13226==    at 0x4029D56: malloc (vg_replace_malloc.c:270)
    ==13226==    by 0x80483D8: main (test.c:8)
    ==13226==
    ==13226== 4 bytes in 1 blocks are definitely lost in loss record 2 of 2
    ==13226==    at 0x4029D56: malloc (vg_replace_malloc.c:270)
    ==13226==    by 0x80483E8: main (test.c:9)
    ==13226==
    ==13226== LEAK SUMMARY:
    ==13226==    definitely lost: 5 bytes in 2 blocks
    ==13226==    indirectly lost: 0 bytes in 0 blocks
    ==13226==      possibly lost: 0 bytes in 0 blocks
    ==13226==    still reachable: 0 bytes in 0 blocks
    ==13226==         suppressed: 0 bytes in 0 blocks
    ==13226==
    ==13226== For counts of detected and suppressed errors, rerun with: -v
    ==13226== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 11 from 6)

  • 相关阅读:
    httpclient + TestNG 接口自动测试 第二章
    httpclient + TestNG 接口自动测试 第一章
    Kafka-manager启动命令
    多台服务器搭建Spark集群
    Scala学习 -- 基础语法
    Spark学习 -- RDD
    Spark 学习
    Angular constructor和OnInit的区别和适用场景
    TypeScript基础学习 —— 变量声明
    TypeScript基础学习 —— 基础类型
  • 原文地址:https://www.cnblogs.com/renhl/p/3302496.html
Copyright © 2011-2022 走看看