Valgrind
Valgrind | |
---|---|
Kehityshistoria | |
Vakaa versio | 3.23.0 ()[1] |
Tiedot | |
Lisenssi | GNU General Public License |
Aiheesta muualla | |
Verkkosivusto | |
Versiohallinta |
Valgrind on joukko ohjelmia debuggaukseen ja profilointiin.[2]
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
[muokkaa | muokkaa wikitekstiä]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
[muokkaa | muokkaa wikitekstiä]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
[muokkaa | muokkaa wikitekstiä]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
[muokkaa | muokkaa wikitekstiä]Lähteet
[muokkaa | muokkaa wikitekstiä]- ↑ Valgrind-3.23.0 is available. 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)
- ↑ a b 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)
- ↑ a b c 4. Writing a New Valgrind Tool cs.cmu.edu. Viitattu 31.1.2020. (englanniksi)
Aiheesta muualla
[muokkaa | muokkaa wikitekstiä]- Using Valgrind to detect undefined value errors with bit-precision (englanniksi)
- The Design and Implementation of Valgrind (englanniksi)