Compartir a través de


_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.

Consulte también

Rutinas de depuración