Bonjour,
je développe une application Qt sous Windows avec VC++ 2008.
Pour détecter des fuites de mémoire, comme je n'ai pas Valgrind, je prends ça:
http://msdn.microsoft.com/en-us/libr...=VS.90%29.aspx
En résumé, il s'agit d'un jeu de macros (définies dans crtdbg.h si _CRTDBG_MAP_ALLOC est définie) et d'une fonction de débogage fournies avec la librairie C++ de Visual.
Ces macros remplacent les appels aux fonctions C de gestion de mémoire (free, malloc, realloc et quelques autres) par des appels à des versions de débogage, qui prennent __LINE__ et __FILE__ comme arguments supplémentaires. Ainsi le débogueur garde la trace de l'endroit où l'allocation a lieu.
Hélas, certaines classes de Qt (dont QString) définissent (dans leurs en-têtes) des méthodes nommées free, malloc et realloc pour leur propre gestion mémoire.
Bien évidemment, les macros de crtdbg.h cassent ces méthodes et empêchent la compilation.
En dernier recours, je pense renommer ces méthodes et recompiler Qt, afin d'éviter ces "conflits". Quelqu'un connaîtrait-il une méthode plus simple ?
Merci d'avance.
Partager