_CrtDumpMemoryLeaks

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Vidages de la mémoire bloque dans le tas de débogage lorsqu’une fuite de mémoire s’est produite (version debug uniquement).

  
int _CrtDumpMemoryLeaks( void );  

_CrtDumpMemoryLeaksRetourne TRUE si une fuite de mémoire est trouvée. Dans le cas contraire, la fonction retourne FALSE.

Le _CrtDumpMemoryLeaks fonction 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 détectée, les informations d’en-tête pour tous les objets dans le tas de débogage sont exportées dans un format lisible par l’utilisateur. Lors de la _DEBUG n’est pas défini, les appels à _CrtDumpMemoryLeaks sont supprimés lors du prétraitement.

_CrtDumpMemoryLeaksest fréquemment appelée à la fin de l’exécution du programme pour vérifier que toute mémoire allouée par l’application a été libérée. La fonction peut être appelée automatiquement à la fin du programme en activant le _CRTDBG_LEAK_CHECK_DF champ de bits de le _crtDbgFlag indicateur à l’aide de la _CrtSetDbgFlag (fonction).

_CrtDumpMemoryLeaksappels _CrtMemCheckpoint pour obtenir l’état actuel du segment de mémoire, puis vérifie l’état des blocs qui n’ont pas été libérés. Lorsqu’un bloc non libéré est rencontré, _CrtDumpMemoryLeaks appelle _CrtMemDumpAllObjectsSince aux informations de dump de tous les objets alloués dans le tas à partir du début de l’exécution du programme.

Par défaut, les blocs d’exécution C internes (_CRT_BLOCK) ne sont pas inclus dans les opérations de vidage de mémoire. Le _CrtSetDbgFlag fonction peut être utilisée pour activer la _CRTDBG_CHECK_CRT_DF de bits de _crtDbgFlag à inclure ces blocs dans le processus de détection de fuite.

Pour plus d’informations sur les fonctions d’état du tas et sur la structure _CrtMemState , consultez Heap State Reporting Functions. 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 CRT Debug Heap Details.

RoutineEn-tête requis
_CrtDumpMemoryLeaks<crtdbg.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility dans l’introduction.

Les versions Debug de les bibliothèques Runtime C uniquement.

Pour obtenir un exemple montrant comment utiliser _CrtDumpMemoryLeaks, consultez crt_dbg1.

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

Routines de débogage

Afficher: