zoukankan      html  css  js  c++  java
  • Valgrind下载、安装和使用

    下载 valgrind-3.15.0.tar.bz2

    安装

    $ sudo apt-get install automake
    $ tar jxf valgrind-3.15.0.tar.bz2
    $ cd valgrind-3.15.0
    $ ./autogen.sh
    $ ./configure
    $ make
    $ sudo make install
    

    使用

    1、检查是否有内存泄露

    $ gcc 3_12.c
    $ valgrind ./a.out
    

    下图显示 [ 没有error,warning,但是却发生了内存泄露 ] ,因此,需要进行手动释放 malloc 开辟的空间。

    2、开始调试

    1)首先,打开一个终端,添加调试信息

    $ gcc -g 3_12.c
    $ valgrind --vgdb=yes --vgdb-error=0 ./a.out
    

    2)然后,新建一个终端(Terminal),开始调试。

    【前一个终端不要关闭,从现在开始始终在这个终端里 [ 输入命令 ] ,从前一个终端中 [ 观察输出 ] 。】

    $ gdb ./a.out
    (gdb) target remote | vgdb
    

    调试步骤:

    1. 使用b命令在可能发生内存泄露行的附近设置一个断点
    2. 输入continue令程序执行到断点处(注意:不是gdb中的r命令)
    3. 输入sn进行单步调试,观察输出结果

    ⌈ 或者 ⌋ 不进行单步调试,直接输出堆栈信息:

    $ valgrind ./a.out --leak-check=full
    

    最后,

    经过调试,显示正常了 13 allocs 13 frees 。

  • 相关阅读:
    BZOJ-3495 前缀优化建图2-SAT
    洛谷P3979 遥远的国度 树链剖分+分类讨论
    hdu
    hdu
    poj
    poj-1330(暴力写的lca)
    树链剖分
    Dijkstra
    Floyed
    最短路径
  • 原文地址:https://www.cnblogs.com/zhyantao/p/11389647.html
Copyright © 2011-2022 走看看