Valgrind

Valgrind on joukko ohjelmia debuggaukseen ja profilointiin.[2]

Valgrind
Kehityshistoria
Vakaa versio3.23.0 ()[1]
Tiedot
LisenssiGNU 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

Aiheesta muualla