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/

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

valgrind的编译和使用的更多相关文章

  1. 使用valgrind检查内存

    Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,是公认的最接近Purify的产品,它包含一个内核——一个软件合成的CPU,和一系列的小工具,每个工具都可以完成一项任务——调试 ...

  2. 基于c语言中调试工具的用法汇总(不包含gdb)【转】

    转自:http://www.jb51.net/article/36829.htm 是不是只有编译的时候才知道程序写了错误?有没有在未编译的时候就让机器帮你检查错误的工具呢? 答案是:有!! splin ...

  3. Valgrind 3.11.0编译安装

    Valgrind 3.11.0编译安装 Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind遵守GNU通用公共许可证条款,是一款自由软件. 到3.3.0版本为 ...

  4. 编译Valgrind arm交叉编译

    1. 下载源码: http://valgrind.org/downloads/valgrind-3.9.0.tar.bz2   2. 加压缩: mkdir sw cd sw tar zxf valgr ...

  5. ubuntu 编译源码坏境配置

    git checkout -b newlocal origin/q01v31source build/envsetup.shlunch msm8916_32-usermake -j4 make -j4 ...

  6. 【转】 如何使用Valgrind memcheck工具进行C/C++的内存泄漏检测

    系统编程中一个重要的方面就是有效地处理与内存相关的问题.你的工作越接近系统,你就需要面对越多的内存问题.有时这些问题非常琐碎,而更多时候它会演变成一个调试内存问题的恶梦.所以,在实践中会用到很多工具来 ...

  7. linux下内存泄露检测工具Valgrind介绍

    目前在linux开发一个分析实时路况的应用程序,在联合测试中发现程序存在内存泄露的情况. 这下着急了,马上就要上线了,还好发现了一款Valgrind工具,完美的解决了内存泄露的问题. 推荐大家可以使用 ...

  8. Centos 7环境下编译mysql 5.7

    首先在编译之前,我们要了解相关mysql 5.7的编译选项,官网编译选项地址:http://dev.mysql.com/doc/refman/5.7/en/source-configuration-o ...

  9. Linux下编译安装PCRE库

    备注:如果没有root权限,使用 --prefix 指定安装路径 ./configure --prefix=/home/work/tools/pcre-8.xx =================== ...

随机推荐

  1. [BZOJ 1805] Sail 船帆

    Link: BZOJ 1805 传送门 Solution: 一道思路比较巧的线段树的题目 首先可以发现,答案和顺序是没有关系的,都是$\sum_{i=1}^n {H_i∗(H_i−1)/2}$. 那么 ...

  2. Java高级架构师(一)第05节:TortoiseGit的本地使用

  3. Swift中懒加载(lazy initialization)的实现

    Swift中是存在和OC一样的懒加载机制的,但是这方面国内的资料比较少,今天把搜索引擎换成了Bing后发现用Bing查英文\最新资料要比百度强上不少. 我们在OC中一般是这样实现懒加载初始化的: 1: ...

  4. Visio插入竖直省略号

    不去想省略号,想效果,插入文本框,输入点号,换行,三次就ok.

  5. [Lync]lync同步通讯簿

    概述 在客户现场部署lync的时候,突然发现新安装的lync客户端,搜索联系人功能无法使用,而将lync客户端安装后,隔一段时间后,又可以查询了,发现可能是数据没有同步的原因. 解决方案 客户端地址簿 ...

  6. CSS部分属性的深入学习

    先上个张鑫旭大神的政治课,来个一棒打醒(手动滑稽): 说说CSS学习中的瓶颈: 虽然自己水平不高,但是对于重构这方面工作一直不怎么喜欢,可能觉得比较没有新意,但是看了大神文章突然有点一棍打醒的感觉,突 ...

  7. Getting terminal width in C?

    转:http://stackoverflow.com/questions/1022957/getting-terminal-width-in-c 方法一: #include <sys/ioctl ...

  8. Nginx用为缓存服务器

    Nginx 缓存组成 共享内存 数据定位 存储键和缓存对象的元数据 磁盘空间: 存储数据   nginx做为反向代理时,能够将来自upstream的响应缓存至本地,并在后续的客户端请求同样内容时直接从 ...

  9. 使用Jenkins部署Spring Boot

    原文:http://www.cnblogs.com/ityouknow/p/7899349.html jenkins是devops神器,本篇文章介绍如何安装和使用jenkins部署Spring Boo ...

  10. jenkins如何在一台机器上开启多个slave

    1.一台机器不是jenkins的master分支 2.另一台机器部署多个slave分支 3.部署多台slave分支的机器其实只需要在多个目录放置多个slave.jar就可以了,然后进行一些配置即可