Johdatus valgrindiin, ristikääntämiseen ja ARM: n käyttämiseen

Introduction Valgrind



valgrindJohdanto ja ARMSuorita ristikäännöksessä

Viiteblogi: https://blog.csdn.net/dengcanjun6/article/details/54958359



Viiteblogi: https://blog.csdn.net/longbei9029/article/details/78626004?locationNum=1&fps=1



Viiteblogi: https://blog.csdn.net/qq_29350001/article/details/53780697



Valgrind on ohjelmistokehitystyökalu muistin virheenkorjaukseen, muistivuotojen havaitsemiseen ja suorituskyvyn analysointiin. Vastaanottaja
Valgrindin alkuperäinen kirjoittaja on Julian Seward, joka voitti toisen Google-O’Reilly Open Source Code -palkinnon vuonna 2006 Valgrindia koskevasta työstään. Vastaanottaja
Valgrind noudattaa GNU General Public License -lisenssin ehtoja ja on ilmainen ohjelmisto.

Verkossa on monia erityisiä käyttötarkoituksia. Tässä on joitain ongelmia ARM: n ristikokoamis- ja käyttöprosessissa.

1. Lataa ja koota valmistelu



wget http://valgrind.org/downloads/valgrind-3.12.0.tar.bz2 tar xvf valgrind-3.12.0.tar.bz2 cd valgrind-3.12.0 sudo apt-get install automake ./autogen.sh

2. Ristikoostumus
Muokkaa asetuksia: armv7 *) armv7 * | arm)

./configure --host=arm-linux CC=arm-none-linux-gnueabi-gcc CPP=arm-none-linux-gnueabi-cpp CXX=arm-none-linux-gnueabi-g++ --prefix=/opt/valgrind-3.12.0 make make install

/opt/valgrind-3.12.0Luodussa valgrindissa hakemistossa on 4 kansiota: bin, include, lib, share

--Prefix = / opt / valgrind-3.12.0 Määritetyn hakemiston on oltava yhdenmukainen kehitysalustalle sijoitetun hakemiston kanssa, muuten 'valgrind: epäonnistui käynnistettäessä työkalua' memcheck 'for platform'arm-linux': Ei voi ilmestyä, kun käynnissä valgrind tällaisen tiedoston tai hakemiston virhe.

3. Suorita
Kopioi asennushakemiston valgrind-hakemisto kohdekortille tftp: n kautta/opt/valgrind-3.12.0Muokkaa hakemiston alla bin-hakemiston suoritusoikeuksia.

chmod -R +x /opt/valgrind-3.12.0/bin/

Tällä hetkellä valgrindin suorittaminen roskakorihakemistossa näyttää seuraavan virhesanoman:

valgrind: failed to start tool 'memcheck' for platform 'arm-linux': Permission denied

Ratkaisu:

export VALGRIND_LIB='/opt/valgrind-3.12.0/lib/valgrind' chmod -R +x /opt/valgrind-3.12.0/lib/valgrind/

Voit tarkistaa ARM: n koodin muistivuotojen varalta.

4. Ongelmien lajittelu

1.Virhe 'valgrind: ei onnistunut käynnistämään työkalua' memcheck 'alustalle' arm-linux ': Ei tällaista tiedostoa tai hakemistoa'.

Monet online-opetusohjelmat sanovat kiinnittävän huomiota - etuliitteen takana olevan asennushakemiston tulisi olla yhdenmukainen kehityskortin alustan hakemiston kanssa. Esimerkiksi käännän ubuntu x64: ää ja asennan sen hakemistoon /opt/valgrind-3.12.0, sitten asennamme koko valgrind-3.12 Jos .0-hakemisto kopioidaan kehityskortille, se on kopioitava kehityskortin / opt-hakemistoon. Jotkut ongelmat voidaan todellakin ratkaista. Mutta itse asiassa olennainen ongelma on toteutusvalgrindMilloin, ei löydyvalgrind/libKirjasto! ! !

Ratkaisu: Voit nähdä, että lib: n alla on hakemisto valgrind. Tällä hetkellä lisätään rivi kehityskorttiin / etc / profile

vie VALGRIND_LIB = / opt / valgrind-3.12.0 / lib / valgrind

Tietysti voimme määrittää myös kohdassa PATH = '/ usr / bin: / usr / sbin: / bin: / sbin: / app / bin: /opt/valgrind-3.12.0/bin', musta on jokin järjestelmäpolun kokoonpano (oman profiilisi PATH: n mukaan), lisää vain punainen osa takana, suorita lähde / etc / profiili, voit käyttää sitä valgrind-komentona

Suorita valgrind --tool = memcheck --leak-check = full ./test

2. Seuraava virhe tapahtuu suoritettaessa valgrind ls -l:


Yllä oleva virhe johtuu siitä, että Ubuntussa tarvitaan LIB: libc6-dbg
Suorita: sudo apt-get install libc6-dbg asentaaksesi libc6-dbg

Suorita sitten uudelleen: valgrind ls -l