Valgrind交叉编译
编译环境:ubuntu16.04 x64
开发平台:hisi3535 arm板
1.下载Valgrind
我下载的版本为
valgrind-3.12.0.tar.bz2
所有版本=>官网下载地址:
http://valgrind.org/downloads/old.html
2.交叉编译Valgrind(三步走)
   1)配置configure
         
./configure CC=arm-hisiv200-linux-gcc CXX=arm-hisiv200-linux-g++ AR=arm-hisiv200-linux-ar --host=arm-linux --prefix=/opt/valgrind-3.12.0
(给不会交叉编译的解释下,CC为交叉编译链hisi3535,gcc编译器,CXX为g++,都是海思SDK带的)
         
 
在检查脚本的时候可能弹出
 
error: Unsupported host architecture.Sorry

如下图所示错误
          
          
解决方法:
打开configure脚本
,找到
armv7*
字段(如下图所示)改写为
armv7* |arm
或者将
--host=arm-linux
改为
--host=armv7-linux
 
  2)make
    3)make install
3.移植开发板
      
1) 在移植到开发板上的时候出现
“valgrind: failed to start tool 'memcheck' for platform 'arm-linux': No such file or directory
”,
如下图所示
             
     
 
2) 需要注意的一点,
网上很多教程都说要注意
--prefix
后面的安装目录要和开发板平台目录一致,比如说我现在在ubuntu x64编译,安装到/opt/valgrind-3.12.0目录,那么我们将整个valgrind-3.12.0目录拷贝到开发板,那么必须拷贝到开发板的/opt目录下,可能有的的确问题解决了。
但是其实本质上的问题是执行valgrind时,没有找到valgrind的lib库!!!
        
   
 
   
 
      
解决方案:
可以看到lib下面还有一层目录valgrind,这时候我们在开发板/etc/profile文件中添加一行
       export VALGRIND_LIB=/opt/valgrind-3.12.0/lib/valgrind
      
当然我们还可以在
PATH="/usr/bin:/usr/sbin:/bin:/sbin:/app/bin:
/opt/valgrind-3.12.0/bin
",黑色为一些系统路径配置(根据你自己profile里面PATH路径),添加后面红色部分就行了,执行下source /etc/profile ,就可以当valgrind命令使用了
       
 执行下
valgrind --tool=memcheck --leak-check=full ./Tscu 
            
 
         
 
本来以为在Hi3535上面可以使用了,其实看到上图的错误可以看到,出现一个错误码,最后定位是由于我们使用的Hi3535 是
armv5(由海思提供 两套一个是armv5一个是armv7,但是我们使用的是armv5),而valgrind最低硬件要求就是armv7和VFP,所以出现如上
图所示错误,其它编译步骤和移植没有问题

Valgrind交叉编译的更多相关文章

  1. valgrind简介以及在ARM上交叉编译运行【转】

    转自:https://blog.csdn.net/dengcanjun6/article/details/54958359 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...

  2. Ubuntu上交叉编译valgrind for Android 4.0.4的过程与注意事项

    编译环境:Ubuntu x86_64(Linux root 2.6.32-45-generic #101-Ubuntu SMP Mon Dec 3 15:39:38 UTC 2012 x86_64 G ...

  3. 交叉编译mips平台上valgrind

    STEP 1:下载最新版本的valgrind:http://www.valgrind.org/downloads/valgrind-3.9.0.tar.bz2 目前支持的平台,在官网上列表如下:{x8 ...

  4. 编译Valgrind arm交叉编译

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

  5. 应用 Valgrind 发现 Linux 程序的内存问题及交叉编译for arm

    Valgrind 概述 体系结构 Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合.Valgrind由内核(core)以及基于内核的其他调试工具组成.内核类似于一个框 ...

  6. valgrind,arm-linux交叉编译

    1. 下载及解压valgrind-3.9.0 2.CC=/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin/arm-hisiv200-linux ...

  7. arm交叉编译Valgrind

    1. wget http://valgrind.org/downloads/valgrind-3.9.0.tar.bz2 tar xvf valgrind-3.9.0.tar.bz2 cd valgr ...

  8. 在ARM Linux 使用 Valgrind

    Linux valgrind 移植到ARM-Linux  一.Cross-Compile/交叉编译 (1)下载及解压Valgrind-3.11 (2)修改confirure 将armv7*)修改为ar ...

  9. valgrind的编译和使用

    ubuntu 平台: valgrind 3.8.1 一. 编译 ./configure --prefix=/home/frank/test/valgrind/PC/local 报错:checking ...

  10. 内存泄漏定位工具之 valgrind 使用

    1 前言 前面介绍了 GCC 自带的 mtrace 内存泄漏检查工具,该篇主要介绍开源的内存泄漏工具 valgrind,valgrind 是一套 Linux 下,开放源代码的动态调试工具集合,能够检测 ...

随机推荐

  1. Cmake 把 CGAL的demo 编译生成 .sln文件 遇到的一些问题

    尝试了N个版本后,选择了CGAL5.02 为啥去官网或者github下载的CGAl只是一个库,没有窗口,而这个却有呢   链接:https://pan.baidu.com/s/1TvrWQRc9yYD ...

  2. raid随笔

    1.raid 0 准备两个磁盘 [root@localhost ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 40G 0 disk ...

  3. dubbo服务多网卡IP问题

    起因 更换电脑,dubbo服务不能调试,win7电脑好使,win10不行 分析 经过调试发现注册的ip地址,不是VPN分配的地址,多方面查找资料说ip排序的问题,尝试一下方法: 网络连接重新命名成一样 ...

  4. 【javascript】fill()的坑

    今天在开发过程中用到数组填充函数fill() //创建一个5X5的二维矩阵,全部填充1 let array = new Array(5).fill(new Array(5).fill(1)) //此时 ...

  5. 编写简单的button配合input实现上传文件操作

    <template> <button> 导入文件 <input type="file" @change="fileChange" ...

  6. 10.Java中Map的entrySet() 详解以及用法

    一.Map.entry是什么? Map是java中的接口,Map.Entry是Map的一个内部接口. 此接口为泛型,定义为Entry<K,V>.它表示Map中的一个实体(一个key-val ...

  7. canal对接阿里云kafka

    一.前提条件 已经有mysql实例 自建或者云上都可以 已经在阿里云的kakfa创建topic 默认不自动创建topic 二.配置要监控的instance 先修改example的配置文件 conf/e ...

  8. idea plugins搜不出来东西

    今天学习Vue要安装一个Vue.js的插件,在idea的plugins上搜死活搜不出来,参照了网上的关防火墙,勾选什么auto什么的选项还是不管用,最后瞎捣鼓弄好了,在博客上记录一下. 打开手机数据( ...

  9. Oracle-展示的时候出现????乱码

    Oracle-展示的时候出现????乱码 配置环境变量: NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK

  10. sql union 和 union all

    UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 但是需要注意: 1.union内部的select语句必须拥有相同数量的列. 2.列必须拥有相似的数据类型. 3.每条select语句 ...