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 :
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)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 }
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![]()
Partager