Valgrind
Valgrind on joukko ohjelmia debuggaukseen ja profilointiin.[2]
Valgrind | |
---|---|
Kehityshistoria | |
Vakaa versio | 3.20.0 ()[1] |
Tiedot | |
Lisenssi | GNU General Public License |
Aiheesta muualla | |
Verkkosivusto | |
Versiohallinta |
Valgrind integroituu ohjelmointiympäristöihin kuten Qt Creator ja Eclipse.[3][4]
Valgrind tukee muun muassa Android, Linux, Solaris ja Darwin (Mac OS X 10.12) -alustoja ARM, AMD64, Power, MIPS, S/390 ja x86-suorittimilla.
Historia
Ohjelman kehittäjä Julian Seward sai avoimen lähdekoodin palkinnon vuonna 2006 kehitystyöstä.[5]
Ohjelman nimi on peräisin skandinaavisesta mytologiasta.[6]
Ratkaisu ja ominaisuudet
Valgrind toimii ohjelmabinäärillä, jolloin lähdekoodia ei tarvita (esimerkiksi suljetun kirjaston linkityksen kanssa) ja ei tarvitse ohjelman uudelleen kääntämistä.[7] Valgrindissä on modulaarinen rakenne ja perustuu JIT-kääntäjään (engl. just-in-time).[7]
Valgrind sisältää useita työkaluja:[8]
- Memcheck: muistikäsittelyn ongelmat kuten muistivuodot, kaksinkertaiset vapautukset, varaamattoman muistin ja ylivuotojen tarkistukset
- Cachegrind: välimuistin käytön profilointi
- Callgrind: laajennus Cachegrindiin
- Massif: heap-muistin debuggaamiseen
- Helgrind: säikeistyksen debuggaamiseen
Rakenne
Valgrindin arkkitehtuuri jakaantuu kahteen osaan: ”ytimeen” ja ”työkaluihin”.[9] Ytimessä on yhteisiä toimintoja ohjelman instrumentointia varten mukaan lukien JIT-kääntäjän, alemman tason muistikäsittelijän, signaalikäsittelijän ja vuorontajan (säikeitä varten).[9] Ydin jättää eräitä asioita työkalun toteutukseen kuten miten ohjelmakoodia instrumentoidaan.[9]
Katso myös
Lähteet
- https://valgrind.org/downloads/current.html. Tieto on haettu Wikidatasta.
- valgrind(1) - Linux man page linux.die.net. Viitattu 31.1.2020. (englanniksi)
- Using Valgrind Code Analysis Tools doc.qt.io. Viitattu 31.1.2020. (englanniksi)
- Linux Tools Project - Valgrind Support eclipse.org. Viitattu 31.1.2020. (englanniksi)
- Google-O'Reilly Open Source Awards - Hall of Fame developers.google.com. Viitattu 31.1.2020. (englanniksi)
- Valgrind Frequently Asked Questions valgrind.org. Viitattu 31.1.2020. (englanniksi)
- Christian Bornträger: PDFs Linux on System z debugging with Valgrind (PDF) vm.ibm.com. Viitattu 31.1.2020. (englanniksi)
- Valgrind's Tool Suite valgrind.org. Viitattu 31.1.2020. (englanniksi)
- 4. Writing a New Valgrind Tool cs.cmu.edu. Viitattu 31.1.2020. (englanniksi)
Aiheesta muualla
- Using Valgrind to detect undefined value errors with bit-precision (englanniksi)
- The Design and Implementation of Valgrind (englanniksi)