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