Contrairement à des langages de programmation les plus récents tels que Java et Python, les langages de programmation tels que C exigent le programmeur à gérer sa propre mémoire . C fournit des installations de demander mémoire libre et retour au système d'exploitation, mais rien de plus. Parce que des langages comme C offrent pas de mécanisme de collecte des ordures pour nettoyer des objets qui ne sont plus en cours d'utilisation , le programmeur doit être vigilant et supprimer des objets quand ils ne sont plus nécessaires . Si un programme ne se débarrasse pas de ses objets inutilisés , la fuite de mémoire qui en résulte peut entraîner le système d'exploitation de tomber en panne . Instructions
1
installer le « valgrind " suite de débogage.
Le paquet valgrind est disponible gratuitement sur toutes les distributions Linux . Pour l'installer sur les distributions dérivées de Debian comme Ubuntu , tapez "sudo apt- get install valgrind . " Sur RedHat ou Fedora , tapez " sudo yum install valgrind . "
2
compiler votre programme avec les symboles de débogage .
Le compilateur le plus commun pour les programmes C sur les systèmes Linux est gcc . Utilisez l' option "- g" pour instruire gcc pour inclure des symboles de débogage dans le binaire qu'il crée. ( Symboles de débogage sont nécessaires pour débogueurs comme valgrind de se référer à des problèmes spécifiques dans votre code).
Si vous avez un programme C nommé " memoryhog.c . " Par exemple, vous voulez le compiler en utilisant la commande suivante: gcc- g memoryhog.c
3
Run binaire de votre programme par valgrind
moins que vous décidiez , gcc . sera le nom de votre programme « a.out ». Pour exécuter votre binaire nommé " a.out " en utilisant valgrind , tapez cette commande : . Valgrind - Fuite - check = plein - show- accessible = yes /a.out
4
Inspectez la sortie de valgrind
Si toutes les fuites de mémoire ont été corrigées , les rapports valgrind " Tous les blocs de tas ont été libérés - . pas de fuites sont possibles " .
Si des fuites de mémoire sont présents, valgrind répertorie les numéro de la ligne sur laquelle la fuite est créé.