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

    简介:
    memwatch简单易用,能检测未被释放的内存,释放多次的内存。


    安装:
    ① 下载
     http://www.linkdata.se/sourcecode/memwatch/
    ② 解压
     找出 memwatch.c、memwatch.h即可。


    使用:
    ① 编译时,需追加MEMWATCH(使用memwacth,详见memwatch.h)、MW_STDIO(在控制台输出提示)宏值


    实例:
    ① 手顺
    gcc -DMEMWATCH -DMW_STDIO test.c memwatch.c -o test
    ./test

    ② 代码

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <errno.h>
     4 #ifdef MEMWATCH
     5 #include "memwatch.h"
     6 #endif 
     7 
     8 void hello()
     9 {
    10  char *hello;
    11  if ((hello = (char *) malloc(sizeof(char))) == NULL) {
    12      perror("Cannot allocate memory.");
    13      return;
    14  }
    15 }
    16 
    17 int main()
    18 {
    19  hello();
    20  return 0;
    21 }

     ③ 解析结果
    ============= MEMWATCH 2.71 Copyright (C) 1992-1999 Johan Lindh =============

    Started at Wed Sep  4 16:21:26 2013

    Modes: __STDC__ 64-bit mwDWORD==(unsigned long)
    mwROUNDALLOC==8 sizeof(mwData)==32 mwDataSize==32


    Stopped at Wed Sep  4 16:21:26 2013

    unfreed: <1> test.c(12), 1 bytes at 0x9dcb1f0   {FE .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .}

    Memory usage statistics (global):
     N)umber of allocations made: 1
     L)argest memory usage      : 1
     T)otal of all alloc() calls: 1
     U)nfreed bytes totals      : 1

  • 相关阅读:
    JS 弹窗到右下角
    datatable绑定comboBox显示数据[C#]
    ASP.NET MVC html help
    在Filter 无法跳转地址
    js清除浏览器缓存的几种方法
    htm.dropdownlist
    C# 公历转农历
    验证码 禁止输入中文
    反射实例
    使用 Daynamic 动态添加属性
  • 原文地址:https://www.cnblogs.com/renhl/p/3302468.html
Copyright © 2011-2022 走看看