Tutvustus valgrindiga, ristkompileerimine ja ARM-is töötamine

Introduction Valgrind



valgrindSissejuhatus ja ARMKäivita ristkompileerimisel

Võrdlusblogi: https://blog.csdn.net/dengcanjun6/article/details/54958359



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



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



Valgrind on tarkvara arendamise tööriist mälu silumiseks, mälulekkide tuvastamiseks ja jõudluse analüüsiks. To
Valgrindi algne autor on Julian Seward, kes pälvis 2006. aastal Valgrindil tehtud töö eest teise Google-O’Reilly avatud lähtekoodi auhinna. To
Valgrind vastab GNU üldise avaliku litsentsi tingimustele ja on tasuta tarkvara.

Internetis on palju valgrindi konkreetseid kasutusviise. Siin on mõned probleemid ARM-i ristkompileerimise ja kasutamise protsessis.

1. Laadige alla ja koostage ettevalmistus



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. Ristkompileerimine
Muuda seadistust: armv7 *) to 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.0Kataloogi alla loodud valgrind sisaldab 4 kausta: bin, include, lib, share

--Prefix = / opt / valgrind-3.12.0. Määratud kataloog peab olema kooskõlas arendusplaadil oleva kataloogiga, vastasel juhul 'valgrind: ei õnnestunud käivitada tööriista'memcheck' platvormile'arm-linux ': Ei kuvata, kui töötab valgrind sellise faili või kataloogi viga.

3. Jookse
Kopeerige installikataloogi kataloog valgrind sihtlauale tftp kaudu/opt/valgrind-3.12.0Muutke kataloogi all prügikasti kataloogi täitmisõigusi.

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

Praegu kuvatakse prügikasti kataloogis valgrindi käivitamisel järgmine tõrketeade:

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

Lahendus:

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

ARM-is saate kontrollida koodi lekkeid.

4. Probleemide sorteerimine

1.Viga 'valgrind: platvormi' arm-linux 'tööriista' memcheck 'käivitamine nurjus: Sellist faili ega kataloogi ei kuvata.

Paljud veebipõhised õpetused ütlevad, et pöörake tähelepanu - eesliite taga olev installikataloog peaks olema kooskõlas arendusplaadi platvormi kataloogiga. Näiteks kompileerin ubuntu x64-le ja installin selle kataloogi /opt/valgrind-3.12.0, siis installime kogu valgrind-3.12. Kui kataloog .0 kopeeritakse arendusplaadile, tuleb see kopeerida arendusplaadi kataloogi / opt. Mõni probleem võib tõesti laheneda. Kuid tegelikult on põhiprobleem täitminevalgrindMillal, ei leitudvalgrindkohtalibRaamatukogu! ! !

Lahendus: näete, et libi all on kataloog valgrind. Sel ajal lisame arendusplaadi / etc / profile faili rea

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

Muidugi saame seadistada ka kataloogis PATH = '/ usr / bin: / usr / sbin: / bin: / sbin: / app / bin: /opt/valgrind-3.12.0/bin', must on mingi süsteemitee konfiguratsioon (vastavalt oma profiili PATH-ile) lisage lihtsalt tagumine punane osa, käivitage allikas / etc / profiil, saate seda kasutada käsuna valgrind

Käivitage valgrind --tool = memcheck --leak-check = full ./test

2. Valgrind ls -l käivitamisel ilmneb järgmine tõrge:


Ülaltoodud tõrge on tingitud sellest, et Ubuntu jaoks on vaja LIB-i: libc6-dbg
Käivita: sudo apt-get install libc6-dbg libc6-dbg installimiseks

Siis jookse uuesti: valgrind ls -l