zoukankan      html  css  js  c++  java
  • 内存检测工具valgrind的安装和简单使用

    1. 安装

    tar -jxvf valgrind-3.13.0.tar.bz2
    
    cd valgrind-3.13.0
    
    sudo ./configure
    
    sudo make
    
    sudo make install

    2. 简单使用

    #include <stdio.h>
    #include <stdlib.h>
    
    void f()
    {
        int *x = malloc(10 * sizeof(int));
        x[10] = 0;
    }
    
    int main()
    {
        f();
    
        return 0;
    }
    gcc -g val.c -o main.out
    valgrind --tool=memcheck --leak-check=yes --show-reachable=yes ./main.out
    --leak-check=yes --show-reachable=yes ./main.out
    ==16723== Memcheck, a memory error detector
    ==16723== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
    ==16723== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
    ==16723== Command: ./main.out
    ==16723== 
    ==16723== Invalid write of size 4
    ==16723==    at 0x108668: f (val.c:7)
    ==16723==    by 0x10867E: main (val.c:12)
    ==16723==  Address 0x5857068 is 0 bytes after a block of size 40 alloc'd
    ==16723==    at 0x4C2FB6B: malloc (vg_replace_malloc.c:299)
    ==16723==    by 0x10865B: f (val.c:6)
    ==16723==    by 0x10867E: main (val.c:12)
    ==16723== 
    ==16723== 
    ==16723== HEAP SUMMARY:
    ==16723==     in use at exit: 40 bytes in 1 blocks
    ==16723==   total heap usage: 1 allocs, 0 frees, 40 bytes allocated
    ==16723== 
    ==16723== 40 bytes in 1 blocks are definitely lost in loss record 1 of 1
    ==16723==    at 0x4C2FB6B: malloc (vg_replace_malloc.c:299)
    ==16723==    by 0x10865B: f (val.c:6)
    ==16723==    by 0x10867E: main (val.c:12)
    ==16723== 
    ==16723== LEAK SUMMARY:
    ==16723==    definitely lost: 40 bytes in 1 blocks
    ==16723==    indirectly lost: 0 bytes in 0 blocks
    ==16723==      possibly lost: 0 bytes in 0 blocks
    ==16723==    still reachable: 0 bytes in 0 blocks
    ==16723==         suppressed: 0 bytes in 0 blocks
    ==16723== 
    ==16723== For counts of detected and suppressed errors, rerun with: -v
    ==16723== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)

    3. 进阶

    待续

  • 相关阅读:
    Intramart Service一览
    标签库列表
    CSS Expression用法总结
    URI,URL,URN的区别
    JSon数据查询Jlinq
    ie6,ie7兼容性总结
    实例说明扩展JQuery方式
    Android中的Parcel和Parcelable
    absolute绝对定位的非绝对定位用法
    [转载] 默认Web字体样式
  • 原文地址:https://www.cnblogs.com/douzujun/p/10827843.html
Copyright © 2011-2022 走看看