zoukankan      html  css  js  c++  java
  • valgrind的编译和使用

    ubuntu 平台:

    valgrind 3.8.1

    一. 编译

    ./configure --prefix=/home/frank/test/valgrind/PC/local

    报错:checking the GLIBC_VERSION version... unsupported version 2.19

    解决办法:修改configure,支持glibc 2.19.

    接着make;make install 就安装好了。

    二. 使用

    2.1 内存释放后 继续使用已释放的内存的情况

    2.2 malloc 内存泄漏问题

    第一个红框Invalid write of size 4 提示越界;

    第一个红框中的HEAP SUMMARY:提示内存泄漏,alloc了40 Bytes的block,但是free 为0,如果正常释放是如下结果:

     arm 平台交叉编译:

    ./configure --prefix=/home/frank/test/valgrind/local CC=arm-openwrt-linux-gcc CPP=arm-openwrt-linux-cpp CXX=arm-openwrt-linux-c++ --host=arm-openwrt-linux

    make;make install

    成功后将整个local目录拷贝至目标板,local包含bin,include,lib,share.

    注意:

    可能会出现“valgrind: failed to start tool ‘memcheck’ for platform ‘arm-linux’: No such file or directory”的问题

    解决办法:

    1. --prefix指定的目录要与目标板上的目录一致,以我的环境为例,在目标板上需要mkdir -p /home/frank/test/valgrind/local

    如果还不行,就依次执行下面的步骤。

     2. chmod -R +x /home/frank/test/valgrind/local/bin

    3. export VALGRIND_LIB=“/home/frank/test/valgrind/local/lib/valgrind”

     chmod -R +x /home/frank/test/valgrind/local/lib/valgrind/

    以上示例中的路径都是我的环境下的,实际操作时,请使用自己的路径。

  • 相关阅读:
    C#学习笔记:多态与隐藏,覆盖
    HTML与XML数据的结合小总结
    基于角色(RoleBased)的表单验证
    去除C++String的首尾空格
    Bash Shell中命令行选项/参数处理
    linux shell 执行多个命令的几种方法
    gdb 多线程调试
    linux 时间戳及时间差计算
    oracle sql日期比较
    在Fedora 14上安装Sun JDK 6
  • 原文地址:https://www.cnblogs.com/black-mamba/p/8796790.html
Copyright © 2011-2022 走看看