2017-09-20 68 views
0

问题:无法在ARM中运行Valgrind二进制文件。Valgrind ARM二进制文件在ARM926EJ中不起作用,因为找不到错误


我Cross在Linux主机编译Valgrind-3-13-0成功。我将二进制文件移动到我的ARM目标。我跑Valgrind的在手臂上,它说not found.

步骤交叉编译

在生成过程中,我戳到配置文件,改变armv7arm

./configure --host=arm-none-linux-gnueabi --prefix=/home/my_dir 

,我试过这个选项,以及

./configure --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi --prefix=/my_dir 

然后make和make install。

我看到Valgrind位于我的根文件系统/usr/bin,想知道为什么它的说法没有找到。


这是来自Valgrind交叉编译的最终输出。下面是我的安装目录树。

target_val/ 
├── bin 
├── include 
│   └── valgrind 
│    └── vki 
├── lib 
│   ├── pkgconfig 
│   └── valgrind 
└── share 
    ├── doc 
    │   └── valgrind 
    │    └── html 
    │     └── images 
    └── man 
     └── man1 

我实际上是从/bin目录复制只有五个文件,我的目标/usr/bin

callgrind_annotate 
callgrind_control 
valgrind 
valgrind-di-server 
valgrind-listener 

问题。

我需要复制整个lib目录吗?

我尝试在主机上运行的交叉编译的二进制

usr:~/Desktop/ ./valgrind --version 
/lib/ld-linux.so.3: No such file or directory 

我所期待的是,它会抱怨这样的无效ELF图像此架构,因为我建立它的手臂而在Linux上运行它应该像这样抱怨,但事实并非如此。

想知道配置标志和ARCH吗?

回答

0

当我在StackOverflow中发布问题时,我在五分钟内找到了答案。


Valgrind支持可从armv7获得。


Actaully我的硬件不支持Valgrind的,我刚刚通过Amr7和ARMv7混淆两者都是不一样的。同样的,ARM9E与AMRv9不一样。我的错。

我附上了arm architecture page以供参考。

相关问题