Valgrind ARM二进制文件在ARM926EJ中不起作用,因为找不到错误
问题描述:
问题:无法在ARM中运行Valgrind二进制文件。Valgrind ARM二进制文件在ARM926EJ中不起作用,因为找不到错误
我Cross在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
然后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吗?
答
当我在StackOverflow中发布问题时,我在五分钟内找到了答案。
Valgrind支持可从armv7获得。
Actaully我的硬件不支持Valgrind的,我刚刚通过Amr7和ARMv7混淆两者都是不一样的。同样的,ARM9E与AMRv9不一样。我的错。
我附上了arm architecture page以供参考。