Valgrind ARM二进制文件在ARM926EJ中不起作用,给出错误,因为找不到错误

时间:2017-09-20 12:54:44

标签: linux arm cross-compiling valgrind memcheck

问题:无法在ARM中运行Valgrind二进制文件。

我在Linux主机中成功交叉编译Valgrind-3-13-0。我将二进制文件移动到我的ARM目标。我按照not found.

的说法跑了Valgrind

交叉编译的步骤

在构建过程中,我戳了配置文件,将armv7更改为arm

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

我也试过这个选项

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

然后制作并安装。

我看到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?

1 个答案:

答案 0 :(得分:0)

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

可以从armv7获得Valgrind支持。

实际上我的硬件不支持Valgrind ,我对Amr7和Armv7两者都不一样感到困惑。它与ARM9E相同,与AMRv9不同。我的坏。

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