_CrtDumpMemoryLeaks
Vuelca todos los bloques de memoria del montón de depuración cuando se ha producido una fuga de memoria (solo versión de depuración).
Sintaxis
int _CrtDumpMemoryLeaks( void );
Valor devuelto
_CrtDumpMemoryLeaks
devuelve TRUE
si se encuentra una fuga de memoria. De lo contrario, la función devuelve FALSE
.
Comentarios
La función _CrtDumpMemoryLeaks
determina si se ha producido una pérdida de memoria desde que se inició la ejecución del programa. Cuando se encuentra una pérdida, la información de encabezado de depuración de todos los objetos del montón se vuelca en un formato legible para usuario. Cuando _DEBUG
no se define, las llamadas a _CrtDumpMemoryLeaks
se quitan durante el preprocesamiento.
A menudo, se llama a _CrtDumpMemoryLeaks
al final de la ejecución del programa para comprobar que se ha liberado toda la memoria asignada por la aplicación. Se puede llamar a la función automáticamente cuando finaliza el programa mediante la activación del campo de bits _CRTDBG_LEAK_CHECK_DF
de la marca _crtDbgFlag
mediante la función _CrtSetDbgFlag
.
_CrtDumpMemoryLeaks
llama a _CrtMemCheckpoint
para obtener el estado actual del montón y luego examina el estado para detectar bloques que no se hayan liberado. Cuando se encuentra un bloque no liberado, _CrtDumpMemoryLeaks
llama a _CrtMemDumpAllObjectsSince
para volcar la información de todos los objetos asignados en el montón desde que se inició la ejecución del programa.
De forma predeterminada, los bloques internos en tiempo de ejecución de C (_CRT_BLOCK
) no se incluyen en las operaciones de volcado de memoria. Se puede usar la función _CrtSetDbgFlag
para activar el bit _CRTDBG_CHECK_CRT_DF
de _crtDbgFlag
de forma que incluya estos bloques en el proceso de detección de fugas.
Para obtener más información sobre las funciones de estado del montón y la estructura _CrtMemState
, consulte Funciones que indican el estado del montón. Para más información sobre cómo se asignan, inicializan y administran los bloques de memoria en la versión de depuración del montón base, consulte Detalles del montón de depuración de CRT.
Requisitos
Routine | Encabezado necesario |
---|---|
_CrtDumpMemoryLeaks |
<crtdbg.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Bibliotecas
Solo versiones de depuración de las bibliotecas en tiempo de ejecución de C.
Ejemplo
Para obtener un ejemplo de cómo usar _CrtDumpMemoryLeaks
, vea crt_dbg1
.