Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
valgrind [Le 17/08/2008, 05:31] – nicolas66 | valgrind [Le 02/01/2017, 20:17] (Version actuelle) – tags et nettoyage de la page L'Africain | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | |||
+ | ====== Valgrind ======= | ||
+ | |||
+ | **Valgrind** est une suite d' | ||
+ | |||
+ | * **Memcheck** : un détecteur de fuites mémoires (option par défaut) | ||
+ | * **Cachegrind** : un simulateur de caches | ||
+ | * **Callgrind** : un profileur | ||
+ | |||
+ | La détection d' | ||
+ | |||
+ | <note importante> | ||
+ | **Valgrind** n'est pas capable de détecter certaines anomalies liées au code. Par exemple, il ne permet pas de vérifier les indices hors tableau sur des tableaux déclarés en statique. | ||
+ | </ | ||
+ | |||
+ | ===== Pré-requis ===== | ||
+ | |||
+ | * Disposer des [[: | ||
+ | * Disposer d'une connexion à Internet configurée et activée. | ||
+ | |||
+ | ===== Installation ===== | ||
+ | |||
+ | il suffit d' | ||
+ | |||
+ | |||
+ | ===== Utilisation ===== | ||
+ | Dans ce qui suit, on considère un programme C compilé avec l' | ||
+ | |||
+ | ==== Détection de fuites mémoires ==== | ||
+ | **memcheck** est un outil de détection de fuites mémoires appelé par défaut. Il recherche les zones mémoires qui ne sont plus pointées et qui n'ont pas été désallouées (comportement par défaut). | ||
+ | |||
+ | Tapez par exemple la commande suivante pour lancer la détection d' | ||
+ | |||
+ | valgrind --tool=memcheck --leak-check=yes|no|full|summary --leak-resolution=low|med|high --show-reachable=yes ./test | ||
+ | |||
+ | où le paramètre `leak-check' | ||
+ | * **no :** ne fait rien. | ||
+ | * **full / yes :** donne des détails sur chaque fuite mémoire. | ||
+ | * **summary | ||
+ | |||
+ | où le paramètre **show-reachable** étend la recherche aux zones encore pointées mais non désallouées. | ||
+ | |||
+ | où le paramètre **leak-resolution** indique le niveau de recherche des fuites mémoires. | ||
+ | |||
+ | |||
+ | |||
+ | ==== Simulation de caches ==== | ||
+ | L' | ||
+ | |||
+ | Tapez par exemple la commande suivante pour lancer la simulation de 3 caches sur **test** : | ||
+ | |||
+ | valgrind --tool=cachegrind --I1=65535, | ||
+ | |||
+ | ==== Profilage ==== | ||
+ | L' | ||
+ | |||
+ | Tapez par exemple la commande suivante pour lancer le profilage sur **test** : | ||
+ | |||
+ | valgrind --tool=callgrind ./test | ||
+ | |||
+ | |||
+ | ===== Interfaces graphiques ===== | ||
+ | |||
+ | * [[apt> | ||
+ | |||
+ | * Il existe une extension qui permet d' | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | Rentrer l' | ||
+ | |||
+ | * [[apt> | ||
+ | |||
+ | ===== Désinstallation ===== | ||
+ | |||
+ | Pour supprimer cette application, | ||
+ | |||
+ | ===== Références ===== | ||
+ | A titre informatif, voici quelques liens : | ||
+ | |||
+ | * Manuel **Valgrind** complet : [[http:// | ||
+ | * Guide **Valgrind** de démarrage rapide : [[http:// | ||
+ | * http:// | ||
+ | |||
+ | ---- | ||
+ | // |