_CrtDumpMemoryLeaks
Vide tous les blocs de mémoire dans le tas de débogage quand une fuite de mémoire s’est produite (version de débogage uniquement).
Syntaxe
int _CrtDumpMemoryLeaks( void );
Valeur retournée
_CrtDumpMemoryLeaks
retourne 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. Quand une fuite est détectée, les informations d’en-tête de débogage pour tous les objets du tas sont exportées dans un format lisible par l’utilisateur. Quand _DEBUG
n’est pas défini, les appels à _CrtDumpMemoryLeaks
sont supprimés lors du prétraitement.
_CrtDumpMemoryLeaks
est fréquemment appelé à la fin de l’exécution du programme pour vérifier que toute 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 activant le _CRTDBG_LEAK_CHECK_DF
champ bit de l’indicateur à l’aide _crtDbgFlag
de la _CrtSetDbgFlag
fonction.
_CrtDumpMemoryLeaks
appelle _CrtMemCheckpoint
pour obtenir l’état actuel du tas, puis analyse l’état des blocs qui n’ont pas été libérés. Lorsqu’un bloc nonfreed est rencontré, _CrtDumpMemoryLeaks
les appels _CrtMemDumpAllObjectsSince
à des informations de vidage pour 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. La _CrtSetDbgFlag
fonction peut être utilisée pour activer le _CRTDBG_CHECK_CRT_DF
bit de _crtDbgFlag
manière à 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 Fonctions de création de rapports sur l’é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 de débogage du tas de base, consultez Détails du tas de débogage CRT.
Spécifications
Routine | En-tête requis |
---|---|
_CrtDumpMemoryLeaks |
<crtdbg.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Bibliothèques
Uniquement les versions de débogage des bibliothèques Runtime C.
Exemple
Pour obtenir un exemple d’utilisation _CrtDumpMemoryLeaks
, consultez crt_dbg1
.