2017-09-20 65 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以供參考。

相關問題