Ich habe die Quellen vom Valgrind-Trunk heruntergeladen und für die Verwendung auf einem eingebetteten Linux-System (Montavista Linux) mit einem ARM926 (ARMv5t-Architektur) erstellt. Alles lief gut, bis ich versuchte, es auszuführen, um eine von mir erstellte Anwendung zu überprüfen. Valgrind sagt mir:
"valgrind: Tool 'memcheck' für Plattform 'arm-linux' konnte nicht gestartet werden: Keine solche Datei oder kein solches Verzeichnis".
Der Versuch, ein anderes Tool auszuführen, gibt dieselbe Meldung aus. Für make install habe ich die Option --prefix verwendet, die auf das Dateisystem des eingebetteten Systems verweist, das über NFS bereitgestellt wird (z. B. --prefix = / home / NFS_mounted / opt / valgrind). Ich habe den Installationsort überprüft und das lib- Verzeichnis enthält die richtigen Tools. Ich habe auch die entsprechende pkgconfig-Datei auf Valgrind überprüft und es scheint in Ordnung zu sein, daher bin ich im Moment ahnungslos und kann nicht herausfinden, was falsch läuft. 2 Fragen:
- Ist es richtig, so einen cross-kompilierten Valgrind zu verwenden / zu installieren? Vielleicht mache ich etwas falsch in Bezug auf das Setup, oder es gibt etwas, das das Host-System betrifft, das mir fehlt (gdb / gdbserver wie).
- Hat jemand versucht, es auf ARM-Architekturen auszuführen? Ich bin mir bewusst, dass die Unterstützung relativ neu ist, daher frage ich mich, ob ich anständige Ergebnisse erzielen könnte.
quelle
Geben Sie in VALGRIND_LIB das übergeordnete Verzeichnis des amd64-linux-Verzeichnisses ein. Z.B:
export VALGRIND_LIB=/u/gallinar/downloaded/valgrind-3.2.3/.in_place
es hat heute bei mir funktioniert :).
quelle
.in_place
im Ordner.VALGRIND_LIB muss auf den Ordner verweisen, der das Memcheck-Tool und andere abhängige x-kompilierte Bibliotheken enthält
quelle