surdefinition operateur new et delete
Bonjour à tous
Comme mon titre l'indique je souhaite effectuer une surdefinition des operateurs new/delete afin de pouvoir logger les eventuelles fuites de memoires. Mon travail se base sur le 1er tutorial du moteur 3d Yes::Engine de Laurent Gomila (1000 Mercis pour ce super tutorial).
Donc dans mon travail j'utilise les surdefinitions ecrites dans le Yes::Engine ainsi que le meme "MemoryManager".
Tout fonctionne tres bien jusqu'à l'utilisation d'un delete... seg fault...
exemple d'un programme tout simple mais qui ne fonctionne pas avec le log des allocations/liberations memoire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
#define _DEBUG
#include "DebugNew.h"
int main(int argc, char **argv)
{
int i =0; //variable bidon
i++; //code bidon
int *test = new int(); //reservation memoire
i++; //code bidon
i = 5; //code bidon
*test = 5 + i;
delete test; //liberation
} |
Voila donc le code ci dessus ne fonctionne pas. En mode pas à pas il plante sur le new... (Le log du "memory manager" est vide)
Etrangement si j'enleve le "delete test;" le code fonctionne Mais bien sur fuite de memoire... (elle est meme logguée dans le rapport des fuites).
Bien sur le code fonctionne si j'enleve #define _DEBUG
J'utilise Dev cpp 4.9.9.2 avec gcc 3.4.2
Donc si quelqu'un aurait une piste je suis preneur merci :)