Partager via


_CrtDumpMemoryLeaks

Fait un dump tous les blocs de mémoire dans le tas de débogage lorsqu'une fuite de mémoire a eu lieu (version Debug uniquement).

int _CrtDumpMemoryLeaks( void );

Valeur de retour

_CrtDumpMemoryLeaks renvoie TRUE si une fuite de mémoire est trouvée. Sinon, la fonction retourne FALSE.

Notes

La fonction _CrtDumpMemoryLeaks détermine si une fuite de mémoire a eu lieu depuis le début de l'exécution du programme. Lorsqu'une fuite est trouvée, les informations d'en-tête du débogage pour tous les objets de la pile sont jetés dans un formulaire lisible par l'utilisateur. Lorsque _DEBUG n'est pas défini, Les appels de _CrtDumpMemoryLeaks sont supprimés pendant le prétraitement.

_CrtDumpMemoryLeaks est souvent appelé à la fin de l'exécution du programme pour vérifier que la mémoire allouée par l'application a été libérée. La fonction peut être appelée automatiquement à l'arrêt du programme en activation du champ de bits _CRTDBG_LEAK_CHECK_DF de l'indicateur _crtDbgFlag à la fonction _CrtSetDbgFlag.

_CrtDumpMemoryLeaks appelle _CrtMemCheckpoint pour obtenir l'état actuel de la pile puis analyse l'état des blocs qui n'ont pas été libérés. Lorsqu'un bloc non-libéré apparaît, _CrtDumpMemoryLeaks appelle _CrtMemDumpAllObjectsSince pour faire un dump des informations pour tous les objets alloués dans le tas depuis le début de l'exécution du programme.

Par défaut, les blocs internes du runtime C (_CRT_BLOCK) ne sont pas inclus dans les opérations d'image mémoire. La fonction _CrtSetDbgFlag peut être utilisée pour mettre à 1 le bit _CRTDBG_CHECK_CRT_DF de _crtDbgFlag pour inclure ces blocs dans le processus de détection des fuites.

Pour plus d'informations sur les fonctions d'état du tas et la structure de _CrtMemState, consultez Fonctions de création de rapports d'état du tas. Pour plus d'informations sur la façon dont les blocs de mémoire sont alloués, initialisés, et gérés dans la version Debug du tas de base, consultez Détails du tas de débogage CRT.

Configuration requise

Routine

En-tête requis

_CrtDumpMemoryLeaks

<crtdbg.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

Bibliothèques

Seulement les versions debug des bibliothèques Runtime C.

Exemple

Pour un exemple d'utilisation de _CrtDumpMemoryLeaks, consultez crt_dbg1.

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Voir aussi

Référence

Routines de débogage