Valgrind

Valgrind voi havaita muistiongelmia, jotka ovat yleisiä C- ja C++-ohjelmissa ja jotka voivat johtaa ohjelman kaatumisiin ja arvaamattomaan toimintaan. Grader tarkistaa, että koodista ei löydy tällaisia virheitä.

Valgrindin tarkistamat muistivuodot havaitaan seuraavalla komennolla:

valgrind --leak-check=full EXECUTABLE

Ajettava ohjelma kannattaa kääntää debug-moodissa, jolloin virheilmoitukset ovat ymmärrettävämpiä. Kattavamman luettelon mahdollisista virheistä ja niiden syistä löydät osoitteesta <https://valgrind.org/docs/manual/mc-manual.html#mc-manual.errormsgs>_

Jos haluat jäljiltellä Valgrind-graderin tapaa testata opiskelijan koodi, toista vaiheet kuten alla. Ensin valmista testitiedosto ”valgrind_test.txt”:

echo testread \"integration-compulsory/test-00-compulsory-in.txt\" \"integration-compulsory/test-00-compulsory-out.txt\" > valgrind_test.txt

Seuraavaksi aja testi valgrind-työkalulla. Anna testitiedosto parametrina ”prg1”lle:

valgrind --leak-check=full ./prg1 valgrind_test.txt  >./program_out.txt 2>./program_err.txt; cat program_err.txt

Vakiotulostus ohjataan tiedostoon program_out.txt, virheet tiedostoon program_err.txt. Virhetiedosto tulostetaan myös käyttäjälle tarkastettavaksi.

Yksikin Valgrind-virhe puolittaa tai vähentää pisteet minimisuorituksen (200p) tasolle.

A+ esittää tässä kohdassa tehtävän palautuslomakkeen.