Cela arrive même aux meilleurs! La fuite mémoire! Le truc horrible qui peut faire suer des heures durant.
J’ai donc découvert récemment une fuite mémoire dans Nova. Devant une telle horreur j’allais prévenir ma femme de mon indisponibilité sur les 7 prochaines nuits. Quand tout à coup j’ai découvert un superbe outil au sein même du SDK DirectX.
Lorsque l’on installe le SDK de DirectX, il ajoute un control panel spécifique. Ce dernier permet notamment d’activer le mode debug de DirectX.
Dans ce mode, lorsque l’on lance une application utilisant DirectX elle trace dans la fenêtre de sortie de nombreuses informations et notamment les fuites mémoires.
Dans les informations associées à une fuite, DirectX fait apparaitre le numéro d’allocation (AllocID). Or, il est possible avec le control panel de DirectX de demander un break de l’exécution lorsqu’une certaine allocation a lieu.
Cette merveilleuse fonctionnalité permet donc de déclencher le debuggeur à l’endroit précis ou a lieu l’allocation de mémoire qui ne sera pas libérée.
DirectX