Share via


_CrtDumpMemoryLeaks

Vuelca todos los bloques de memoria del montón de depuración cuando se ha producido una pérdida de memoria (solo versión de depuración).

int _CrtDumpMemoryLeaks( void );

Valor devuelto

_CrtDumpMemoryLeaks devuelve TRUE si se encuentra una pérdida de memoria. De lo contrario, la función devuelve el 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 no se define _DEBUG, 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 activando el 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, a continuación, examina el estado para detectar bloques que no se han 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 la memoria. La función _CrtSetDbgFlag se puede usar para activar el bit _CRTDBG_CHECK_CRT_DF de _crtDbgFlag y así incluir estos bloques en el proceso de detección de pérdidas.

Para obtener más información sobre las funciones de estado del montón y la estructura de _CrtMemState, vea Funciones que indican el estado del montón. Para obtener 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, vea Detalles del montón de depuración de CRT.

Requisitos

Rutina

Encabezado necesario

_CrtDumpMemoryLeaks

<crtdbg.h>

Para obtener más información de compatibilidad, vea Compatibilidad en la Introducción.

Bibliotecas

Solo las 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.

Equivalente en .NET Framework

No es aplicable Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

Vea también

Referencia

Rutinas de depuración