table of contents
other sections
MTRACE(3) | Manuel du programmeur Linux | MTRACE(3) |
NOM¶
mtrace, muntrace - Suivi de mallocSYNOPSIS¶
#include <mcheck.h>DESCRIPTION¶
La fonction mtrace() installe des fonctions de rappel (« hook ») pour les fonctions d'allocation mémoire malloc(3), realloc(3) memalign(3), et free(3). Ces fonctions de rappel enregistrent l'historique des allocations et désallocations de mémoire. Ces informations permettent de découvrir des fuites mémoire ou des libérations de mémoire non allouée dans un programme.CONFORMITɶ
Ces fonctions sont des extensions GNU.NOTES¶
En utilisation habituelle, mtrace() est appelé une fois au début de l'exécution du programme, et muntrace() n'est jamais appelé.BOGUES¶
Le numéro de ligne indiqué par mtrace(1) n'est pas toujours précis : il peut faire référence à la ligne de code (non vide) précédente ou suivante.EXEMPLE¶
L'exemple de session suivant montre comment utiliser la fonction mtrace() et la commande mtrace(1) dans un programme qui renferme des fuites mémoire à deux endroits différents.$ cat t_mtrace.c #include <mcheck.h> #include <stdlib.h> #include <stdio.h> int main(int argc, char *argv[]) { int j; mtrace(); for (j = 0; j < 2; j++) malloc(100); /* Jamais libéré -- une fuite mémoire */ calloc(16, 16); /* Jamais libéré -- une fuite mémoire */ exit(EXIT_SUCCESS); }
Lorsque ce programme est exécuté comme ci-dessous, mtrace() diagnostique des fuites mémoire à deux endroits différents.
$ cc -g t_mtrace.c -o t_mtrace $ export MALLOC_TRACE=/tmp/t $ ./t_mtrace $ mtrace ./t_mtrace $MALLOC_TRACE Memory not freed: ----------------- Address Size Caller 0x084c9378 0x64 at /home/cecilia/t_mtrace.c:12 0x084c93e0 0x64 at /home/cecilia/t_mtrace.c:12 0x084c9448 0x100 at /home/cecilia/t_mtrace.c:16
VOIR AUSSI¶
mtrace(1), malloc(3), malloc_hook(3), mcheck(3)COLOPHON¶
Cette page fait partie de la publication 3.44 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse <http://www.kernel.org/doc/man-pages/>.TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>. Thierry Vignaud (2002), Alain Portal <http://manpagesfr.free.fr/> (2006). Florentin Duneau et l'équipe francophone de traduction de Debian (2006-2009). Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le paquet manpages-fr. Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C <section> <page_de_man> ».18 avril 2012 | GNU |