usando Valgrind compilato in modo incrociato


12

Ho scaricato i sorgenti dal trunk Valgrind e li ho creati per l'utilizzo su un sistema Linux incorporato (Montavista Linux) alimentato da un ARM926 (architettura ARMv5t). Tutto è andato bene fino a quando ho provato a eseguirlo per verificare alcune applicazioni che ho fatto; Valgrind mi dice:

"valgrind: impossibile avviare lo strumento 'memcheck' per la piattaforma 'arm-linux': nessun file o directory".

Cercare di eseguire qualsiasi altro strumento dà lo stesso messaggio. Per make install ho usato l'opzione --prefix che punta al filesystem del sistema incorporato che è montato tramite NFS (es. --Prefix = / home / NFS_mounted / opt / valgrind). Ho controllato il percorso di installazione e la directory lib contiene gli strumenti adeguati; Ho anche controllato il file pkgconfig corrispondente per Valgrind e sembra essere a posto, quindi sono un po 'all'oscuro in questo momento e non riesco a capire cosa non va. 2 domande:

  1. È corretto utilizzare / installare un Valgrind compilato in questo modo? Forse sto facendo qualcosa di sbagliato riguardo l'installazione, o forse c'è qualcosa che coinvolge il sistema host che mi manca (come gdb / gdbserver).
  2. Qualcuno ha provato a eseguirlo su architetture ARM? Sono consapevole che il supporto è abbastanza recente, quindi mi chiedo se potrei ottenere risultati decenti.

Risposte:


15

Esegui questo comando nel dispositivo di destinazione

export VALGRIND_LIB=~/valgrind/lib/valgrind/

dove ./valgrindè installato il percorso della directory (indicato in ./configure)


4

Il problema è che 'valgrind' sta cercando un eseguibile diverso per eseguire il vero controllo. Utilizza il percorso di installazione specificato durante la configurazione, che non è lo stesso percorso sulla destinazione.

Dovresti essere in grado di confermarlo creando un link simbolico / home / NFS_mounted sul tuo target che punta a '/'.


Come cerca quel percorso? Pkgconfig contiene il percorso target corretto, quindi da dove prova a prenderlo?
Celavek,

Penso che sia compilato. Lo script ./configure genera un file di intestazione config.h, che dovrebbe contenere il percorso del prefisso.
Kristof Provost,

2

Inserisci in VALGRIND_LIB la directory principale della directory amd64-linux. Per esempio:

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

ha funzionato per me oggi :).


Mi manca il .in_placenella cartella.
ArmenB,

0

VALGRIND_LIB deve puntare alla cartella che ha lo strumento memcheck e altre librerie compilate x dipendenti

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.