vendredi, juin 19

eliminer des fuites mémoires

si vous rencontrez des fuites mémoires comme ci-dessous

Detected memory leaks!
Dumping objects ->
f:\sp\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(141) : {65369} normal block at 0x0B0F5A68, 27 bytes long.

1. mettez un point d'arrêt préférablement au debut du program.
2. remarquez le numéro. par exemple {64135}. le numero ne doit pas changer. s'il change, trouvez des numéros qui ne changent pas.
3. ajoutez un watch.

Nom: {,,msvcr80.dll}_crtBreakAlloc
Valeur: 64135

4. redéboguez l'application.
5. vous allez voir un point d'arrêt sur debugheap.c.
6. regardez la call stack.
7. et puis, trouvez où des fuites mémoires se passent.