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.