Suivi des allocations de mémoire
Mise à jour : novembre 2007
Cette rubrique s'applique à :
Édition |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
![]() |
![]() |
Natif uniquement |
![]() |
Standard |
![]() |
![]() |
Natif uniquement |
![]() |
Pro et Team |
![]() |
![]() |
Natif uniquement |
![]() |
Légende du tableau :
![]() |
Applicable |
![]() |
Non applicable |
![]() |
Commande ou commandes masquées par défaut. |
Dans les MFC, vous pouvez utiliser la macro DEBUG_NEW à la place de l'opérateur new pour faciliter la localisation des fuites de mémoire. Dans la version Debug de votre programme, DEBUG_NEW assure le suivi du nom du fichier et du numéro de ligne pour chaque objet alloué. Lorsque vous compilez une version Release de votre programme, DEBUG_NEW est traduit en une opération new simple sans les informations de nom de fichier et de numéro de ligne. Ainsi, la vitesse n'est pas pénalisée dans la version Release de votre programme.
Si vous souhaitez éviter de réécrire le programme entier pour utiliser DEBUG_NEW à la place de new, vous pouvez définir la macro suivante dans vos fichiers sources :
#define new DEBUG_NEW
Lorsque vous faites un dump d'objets, chaque objet alloué avec DEBUG_NEW affiche le fichier et le numéro de ligne où il a été alloué, ce qui vous permet de localiser l'origine des fuites de mémoire.
La version Debug de l'infrastructure MFC utilise automatiquement DEBUG_NEW, contrairement à votre code. Si vous souhaitez bénéficier de DEBUG_NEW, vous devez utiliser DEBUG_NEW explicitement ou #define new comme indiqué plus haut.