Compartir a través de


Funciones que indican el estado del montón

Actualización: noviembre 2007

Este tema es aplicable a:

Edición

Visual Basic

C#

C++

Web Developer

Express

Sólo para código nativo

Standard

Sólo para código nativo

Pro y Team

Sólo para código nativo

Leyenda de la tabla:

Se aplica

No procede

Comando o comandos ocultos de forma predeterminada.

Algunas funciones informan del contenido del montón de depuración en un momento dado.

_CrtMemState

Para capturar una instantánea resumen del estado del montón en un instante determinado, use la estructura _CrtMemState definida en CRTDBG.H:

typedef struct _CrtMemState
{
    // Pointer to the most recently allocated block:
    struct _CrtMemBlockHeader * pBlockHeader;
    // A counter for each of the 5 types of block:
    size_t lCounts[_MAX_BLOCKS];
    // Total bytes allocated in each block type:
    size_t lSizes[_MAX_BLOCKS];
    // The most bytes allocated at a time up to now:
    size_t lHighWaterCount;
    // The total bytes allocated at present:
    size_t lTotalCount;
} _CrtMemState;

Esta estructura guarda un puntero al primer bloque (el más recientemente asignado) en la lista vinculada del montón de depuración. A continuación, registra en dos matrices cuántos bloques de cada tipo de bloque de memoria (_NORMAL_BLOCK, _CLIENT_BLOCK, _FREE_BLOCK, etc.) hay en la lista, así como el número de bytes asignados en cada tipo de bloque. Por último, registra el mayor número de bytes asignado en el montón de manera global hasta ese punto y el número de bytes asignado actualmente.

Otras funciones CRT para informes

Las siguientes funciones informan del estado y el contenido del montón, y utilizan la información para ayudar a detectar pérdidas de memoria y otros problemas.

Función

Descripción

_CrtMemCheckpoint

Guarda una instantánea del montón en una estructura _CrtMemState proporcionada por la aplicación.

_CrtMemDifference

Compara dos estructuras de estados de memoria, guarda la diferencia entre ellas en una tercera estructura de estado y devuelve TRUE si los dos estados son diferentes.

_CrtMemDumpStatistics

Realiza un volcado de una estructura _CrtMemState dada. La estructura puede contener una instantánea del estado del montón de depuración en un momento dado, o la diferencia entre dos instantáneas.

_CrtMemDumpAllObjectsSince

Realiza un volcado de información de todos los objetos asignados desde que se tomó una determinada instantánea del montón o desde el inicio de la ejecución. Cada vez que vuelca un bloque _CLIENT_BLOCK, llama a una función de enlace suministrada por la aplicación, si se instaló una mediante _CrtSetDumpClient.

_CrtDumpMemoryLeaks

Determina si se produjo alguna pérdida de memoria desde el inicio de la ejecución del programa; en ese caso, realiza un volcado de todos los objetos asignados. Cada vez que _CrtDumpMemoryLeaks vuelca un bloque _CLIENT_BLOCK, llama a una función de enlace suministrada por la aplicación, si se instaló una mediante _CrtSetDumpClient.

Vea también

Otros recursos

El montón de depuración de CRT