Sureveiller les allocations de memoire [c]

Soyez le premier à donner votre avis sur cette source.

Vue 6 159 fois - Téléchargée 489 fois

Description

Cette source surveille la memoire utilisée votre appli (c.f. titre).

Pour l'utiliser :
- rajouter mwatch.c et mwatch.h à votre projet
- inclure "mwatch.h" dans tous les fichiers qui peuvent potentiellement allouer (ou desallouer) de la mémoire
- appeler mw_Init("nom_du_fichier_log_mémoire_que_vous_voulez"); au debut du prog
- appeler mw_Shutdown(); à la fin du prog
- recompiler tout le projet

Vous pouvez aussi appeler à n'importe quel moment (entre mw_Init et mw_Shutdown) la fonction mw_Stats(); qui rapelle le total des allocations et le total des allocations depuis le dernier appel à mw_Stats.

Le fichier test.c n'est qu'un fichier de test pour vérifier si ca marche. Vous pouvez aller voir dedans pour avoir un exemple d'utilisation du memory watch.
Le fichier mwatch_log.txt est ce que vous devez normalement obtenir avec test.c

Source / Exemple :


// zip

Conclusion :


J'espere que cette source sera utile à tous ceux qui ont un jour rencontré un memory leak.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
dimanche 14 août 2005
Statut
Membre
Dernière intervention
21 décembre 2006

Chouette idée !
Mais cela ne semble pas fonctionner avec les new et les delete en C++ non ?
Y'a t-il un moyen de l'adapter pour les new et delete ?

Merci :-)

Olivier
Messages postés
42
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
5 novembre 2005

Salut forest2,

Pour les allocations/desallocations ca marche exactement comme d'habitude (donc normalement avec les tableaux aussi). La seule chose à surveiller est que tu dois faire un malloc mwatch et un free mwatch (faut pas croiser avec des malloc et free pas mwatch).

Pour ton tableau de vecteur j'ai pas très bien compris le problème mais normalement tu fais comme d'habitude avec malloc() et free() et ca marche.
Messages postés
2
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 novembre 2005

c'est toujours moi vous savez je programme sous linux et je faire un apple recursiive qui modifie une valeur d'un tableux de vecteur mais il pas initialise donc comment faire merci....
Messages postés
2
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 novembre 2005

salut tu sais c'est tres interssant comme approche
mais est il possible de alloue la memoire d'un tableau
Messages postés
42
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
5 novembre 2005

thaeron > ben en fait ca doit planter si tu fait un malloc (pas mwatch) avec le free correspondant qui lui est mwatch.
par contre ca doit marcher si tu fais un malloc mwatch suivi d'un free normal (mais la t'as un memory leak de la taille d'un entier a chaque fois que tu fais une allocation)
Afficher les 18 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.