Valgrind on joukko ohjelmia debuggaukseen ja profilointiin.
Valgrind integroituu eri ohjelmointiympäristöihin kuten Qt Creator ja Eclipse.
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ä.
Ohjelman nimi on peräisin skandinaavisesta mytologiasta.
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ä. Valgrindissä on modulaarinen rakenne ja perustuu JIT-kääntäjään ().
Valgrind sisältää useita työkaluja: Memcheck: ohjelmien muistinhallinnan 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”. 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). Ydin jättää eräitä asioita työkalun toteutukseen kuten miten ohjelmakoodia instrumentoidaan.
Katso myös Dynaaminen analyysi
Lähteet
Aiheesta muualla Using Valgrind to detect undefined value errors with bit-precision The Design and Implementation of Valgrind
Luokka:Debuggerit Luokka:Profilointityökalut Luokka:Linux-ohjelmat