çapraz derlenmiş Valgrind kullanarak


12

Valgrind bagajından kaynakları indirdim ve bir ARM926 (ARMv5t mimarisi) ile güçlendirilmiş gömülü bir Linux sisteminde (Montavista Linux) kullanmak için yaptım. Yaptığım bazı uygulamaları kontrol etmeye çalışana kadar her şey iyi gitti; Valgrind bana şunları söylüyor:

"valgrind: 'arm-linux' platformu için 'memcheck' aracı başlatılamadı: Böyle bir dosya veya dizin yok".

Başka bir aracı çalıştırmaya çalışmak aynı mesajı verir. İçin marka yüklemek Ben NFS yoluyla monte edilir gömülü sistemin dosya sistemine işaret prefix seçeneği kullanılır (örneğin prefix = / home / NFS_mounted / opt / valgrind). Kurulum konumunu kontrol ettim ve orada lib dizini uygun araçları içerir; Ayrıca Valgrind için ilgili pkgconfig dosyasını kontrol ettim ve Tamam gibi görünüyor, bu yüzden şu anda clueless'ım ve neyin yanlış gittiğini anlayamıyorum. 2 soru:

  1. Çapraz derlenmiş bir Valgrind kullanmak / kurmak doğru mu? Belki kurulum ile ilgili yanlış bir şey yapıyorum, ya da eksik ana bilgisayar sistemi ile ilgili bir şey var (gdb / gdbserver gibi).
  2. ARM mimarileri üzerinde çalıştırmayı deneyen var mı? Desteğin oldukça yeni olduğunu biliyorum, bu yüzden iyi sonuçlar alıp alamayacağımı merak ediyorum.

Yanıtlar:


15

Bu komutu hedef cihazınızda çalıştırın

export VALGRIND_LIB=~/valgrind/lib/valgrind/

./valgrindkurulu dizin yolu nerede (içinde verilir ./configure)


4

Sorun 'valgrind' gerçek denetimi çalıştırmak için farklı bir yürütülebilir dosya arıyor olmasıdır. Yapılandırırken belirttiğiniz yükleme yolunu kullanır; bu, hedefteki yolla aynı değildir.

Hedefinizde '/' işaretini gösteren bir symlink / home / NFS_mounted oluşturarak bunu onaylayabilmeniz gerekir.


Bu yolu nasıl arar? Pkgconfig doğru hedef yolunu içerir, bu yüzden onu nereden almaya çalışır?
celavek

Bence derlendi. ./Configure komut dosyası, önek yolunu içermesi gereken bir config.h başlık dosyası oluşturur.
Kristof Provost

2

VALGRIND_LIB dosyasını amd64-linux dizininin üst dizinine yerleştirin. Örneğin:

export VALGRIND_LIB=/u/gallinar/downloaded/valgrind-3.2.3/.in_place

Bugün benim için çalıştı :).


.in_placeKlasördeki eksik .
ArmenB

0

VALGRIND_LIB'nin memcheck aracı ve diğer bağımlı x derlenmiş kütüphaneleri olan klasörü işaret etmesi gerekiyor

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.