【问题标题】:Valgrind ARM binary not working in ARM926EJ, giving error as not foundValgrind ARM 二进制文件在 ARM926EJ 中不起作用,给出错误未找到
【发布时间】:2017-09-20 21:06:14
【问题描述】:

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


我在 Linux 主机上成功交叉编译了Valgrind-3-13-0。我将二进制文件移至我的 ARM 目标。我在手臂上运行 Valgrind,上面写着not found.

交叉编译的步骤

在构建过程中,我戳了一下配置文件,把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 映像,因为我为 arm 构建它并在 Linux 上运行它应该这样抱怨,但事实并非如此。

想知道配置标志和 ARCH 吗?

【问题讨论】:

    标签: linux arm cross-compiling valgrind memcheck


    【解决方案1】:

    我在 StackOverflow 上发布了这个问题,我在五分钟内找到了答案。


    armv7 提供 Valgrind 支持。


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

    我附上了arm architecture page供参考。

    【讨论】:

      猜你喜欢
      • 2018-02-12
      • 2018-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多