海思3559A上编译Valgrind源码操作步骤
注:按照以下步驟可以在海思板子上正常編譯valgrind源碼并生成valgrind可執(zhí)行文件,但可能還不能在海思板子上正常使用。
1. 從http://valgrind.org/downloads/?src=www.discoversdk.com 下載Valgrind 3.15.0即valgrind-3.15.0.tar.bz2;
2. 在valgrind-3.15.0目錄下,創(chuàng)建一個(gè)build.sh腳本文件,內(nèi)容如下:
./configure \--prefix="$PWD/install" \CC=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-gcc \CXX=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-g++ \CPP=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-cpp \AR=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-ar \--target=aarch64-himix100-linux \--host=aarch64-himix100-linux \--program-prefix=hisi- 
3. 依次執(zhí)行如下命令后,會(huì)在當(dāng)前install目錄下生成bin, include, lib, libexec, share五個(gè)目錄,每個(gè)目錄的內(nèi)容如下圖所示
./build.sh
make -j8
make install 
 
4. 將install/bin目錄下的可執(zhí)行文件hisi-valgrind拷貝到海思板子上,將install/lib目錄下的valgrind目錄也拷貝到海思板子上,此目錄下包含了執(zhí)行hisi-valgrind時(shí)需要的庫,然后依次執(zhí)行如下命令,結(jié)果如下圖所示:
export VALGRIND_LIB=valgrind/
./hisi-valgrind --version 
 
5. 測(cè)試代碼main.cpp如下:
#include <stdio.h>
#include <iostream>namespace {void func1() {int* p1 = new int[10];
}void func2() {int* p2 = new int[5];
}} // namespaceint main()
{fprintf(stdout, "test start\n");func1();func2();fprintf(stdout, "test finish\n");
} 
6. 執(zhí)行如下命令,生成可執(zhí)行文件main:
/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-g++ -g -o main main.cpp 
7. 將可執(zhí)行文件main拷貝到海思板子上,執(zhí)行如下命令 ,結(jié)果如下圖所示:
./hisi-valgrind --tool=memcheck --leak-check=full ./main 
 
從上圖中可以看出編譯好的hisi-valgrind還是不能在海思板子上直接使用,可以參考http://www.ebaina.com/blog/show.php?itemid=307?和https://www.ebaina.com/articles/140000002852中的方法試著處理下,本人未驗(yàn)證。
總結(jié)
以上是生活随笔為你收集整理的海思3559A上编译Valgrind源码操作步骤的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 海思3559A上编译GDB源码操作步骤及
 - 下一篇: 开源库nothings/stb的介绍及使