Fuites memoires - C++ - Programmation
Marsh Posté le 22-11-2002 à 15:47:19
Il existe pas mal d'outils pour faire ça (et plus encore). Je pense notamment à rational purify, ou bound checkers.
En gratuit, j'utilise valgrind, mais il ne fonctionne que sous linux x86.
Marsh Posté le 22-11-2002 à 15:59:21
kadreg a écrit a écrit : Il existe pas mal d'outils pour faire ça (et plus encore). Je pense notamment à rational purify, ou bound checkers. En gratuit, j'utilise valgrind, mais il ne fonctionne que sous linux x86. |
Marsh Posté le 22-11-2002 à 16:00:45
red faction a écrit a écrit :![]() |
<vendredi>t'a qu'a coder sous de vrais systèmes</vendredi>
PS: il me semble qu'il y a un truc en débug qui permet d'obtenir à la fin de l'execution la liste des objet encore en mémoire, sauf qu'ils doivent dériver de CObject si ma mémoire est bonne. On risque de rater une bonne partie des fuites.
Marsh Posté le 22-11-2002 à 16:12:44
contre les fuites de mémoire, il faut manger beaucoup de poisson
Marsh Posté le 22-11-2002 à 20:00:43
kadreg a écrit a écrit : <vendredi>t'a qu'a coder sous de vrais systèmes</vendredi> ![]() PS: il me semble qu'il y a un truc en débug qui permet d'obtenir à la fin de l'execution la liste des objet encore en mémoire, sauf qu'ils doivent dériver de CObject si ma mémoire est bonne. On risque de rater une bonne partie des fuites. |
Non je pense pas il m'a deja dumpé des objets fait maisons et donc pas hérités de CObject.
Par contre je me rappelle plus les noms, mais il y a des classes MFC qui permettent de monitorer l'etat de la memoire à differents endroits du programme.
Marsh Posté le 22-11-2002 à 20:34:55
Pour trouver les fuites mémoire, il te faut un GarbageCollector !
Ca a l'air de rien mais ca fait un bon outil pour ça. Il me semble que Mozilla utilise BoehmGC de cette façon.
Marsh Posté le 22-11-2002 à 20:57:07
Kristoph a écrit a écrit : Pour trouver les fuites mémoire, il te faut un GarbageCollector ! Ca a l'air de rien mais ca fait un bon outil pour ça. Il me semble que Mozilla utilise BoehmGC de cette façon. |
t'as pas plus lourd.
c'est pour quel type d'application?
sinon tu peux utiliser les auto_ptr.
et puis si tu as tant de d'allocation dynamique c'est que tu n'utilises pas assez STL
Marsh Posté le 24-11-2002 à 11:26:39
la crt de debug fait ca.
les fonctions d'allocations sont remplacees par des methodes qui font du tracking -> cf la doc microsoft vc++
Sinon tu peux surcharger tes operateurs d'allocation, il y a des exemples dans des bouquins (Game programming gems 2 je crois notamment). Mais a prendre avec un grain de sel suivant ton environnement de developpement bien sur
A+
LeGreg
Marsh Posté le 22-11-2002 à 15:46:08
peut on on voir avec visualc++ les new et les delete qui ont ete fait ??? jdit ca parce que malgre tout mes efforts je suis pas a 100% sur que tout est bien desalloue (surtout lorsque le programme qui anormalement)