0

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


Valgrind-3-13-0我在 Linux 主机中成功交叉编译。我将二进制文件移至我的 ARM 目标。我用它说的手臂运行 Valgrindnot 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

然后制作并安装。

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


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

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

我实际上只将五个文件从/bindir 复制到了我的 target /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 图像,因为我为 arm 构建它并在 Linux 上运行它应该这样抱怨,但事实并非如此。

想知道配置标志和 ARCH 吗?

4

1 回答 1

0

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


可以从 armv7 获得 Valgrind 支持。


实际上我的硬件不支持 Valgrind,我只是被 Amr7 和 Armv7 弄糊涂了,两者都不一样。它与 ARM9E 相同,与 AMRv9 不同。我的错。

我附上了arm 架构页面以供参考。

于 2017-09-20T13:06:14.650 回答