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. 10、jmeter的 Http的请求默认值

    在我们测试过程当中,有很多HTTP协议的请求 这些请求 有很多比如说网址(url)都是相同的 端口也是相同的,路径可能也是相同的 这个时候就需要用到请求默认值,后续直接用就可以  不需要再去配置 后续 ...

  2. Codeforces Round #803 (Div. 2) A-D 刚vp完还没补题

    Codeforces Round #803 (Div. 2) 2022/7/24 上午VP 传送门:https://codeforces.com/contest/1698 A. XOR Mixup 随 ...

  3. MQ(创建MQ注意事项)

    创建MQ队列管理器时,需要注意的事项包括以下几点: 1) 队列管理器的日志类型以及日志文件的大小和个数,要根据用户数据量的大小.各个队列上的消息总容量,来计算日志的总容量,以免在系统运行过程中出现日志 ...

  4. lavarel导航分类不显示,因为域名问题不一致导致

    $front_menu = isset($category_map['hz9y.hzboso.com']) ? $category_map['hz9y.hzboso.com']->childre ...

  5. VC9.0 for Python2

    python2安转包时提示: pip install xxx时,提示 Microsoft Visual C++ 9.0 is required 下载并安装: 链接:https://pan.baidu. ...

  6. LaTeX in 24 Hours - 书籍信息

    书籍信息 书名: LaTex in 24 Hours: A Practical Guide for Scientific Writing 作者: Dilip Datta 出版日期: 2017 ISBN ...

  7. 根据已知经纬度导出对应地点的NDVI值

    首先把经纬度和NDVI投影到同一个坐标上,其次把excel的经纬度到出城shp格式 然后执行如下步骤: [工具][spatial analyst 工具][提取分析][多值提取至点]

  8. [极客大挑战 2019]Upload 1

    进入可以看到,这时一道文件上传题目 直接上传test.php 提示Not image不是图片,可能是MIME绕过,尝试抓包修改Content-Type 提示Not php,猜测可能是检测后缀名不能是p ...

  9. DVWA-Command Injection(命令执行)

    命令执行漏洞,顾名思义,服务端在进行一些网站的操作.管理的时候,需要调用系统命令,如果对传入的命令参数没有进行一些过滤,可以直接执行服务器系统的命令终端 LOW 审计源码 <?php // 判断 ...

  10. 自己动手从零写桌面操作系统GrapeOS系列教程——19.硬盘读写理论知识

    学习操作系统原理最好的方法是自己写一个简单的操作系统. 一.硬盘控制器 我们前面已经讲过硬盘控制器是一种I/O接口,CPU通过它就能间接的读写硬盘.硬盘控制器主要有IDE和SATA两种,我们这里只考虑 ...