Partilhar via


Funções de emissão de relatórios do estado de heap

This topic applies to:

Edition

Visual Basic

C#

F#

C++

Web Developer

Express

O tópico não é aplicável O tópico não é aplicável O tópico não é aplicável

Native only

O tópico não é aplicável

Pro, Premium e Ultimate

O tópico não é aplicável O tópico não é aplicável O tópico não é aplicável

Native only

O tópico não é aplicável

Várias funções de reportam o conteúdo da pilha de depuração em um dado momento.

_CrtMemState

Para capturar um resumo instantâneo do estado da pilha em um determinado momento, use a estrutura de _CrtMemState definida em 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;

Essa estrutura salva um ponteiro para o primeiro bloco (mais recentemente alocado) na lista vinculada da heap de depuração. Em seguida, em duas matrizes, ele registra a bloquear quantos de cada tipo de memória (_NORMAL_BLOCK, _CLIENT_BLOCK, _FREE_BLOCK, e assim por diante) estão na lista e o número de bytes alocados em cada tipo de bloco. Finalmente, ele registra o maior número de bytes alocados no heap como um todo até esse ponto e o número de bytes alocados no momento.

Outras funções de emissão de relatórios de CRT

As seguintes funções relatam o estado e o conteúdo da pilha e usam as informações para ajudar a detectar vazamentos de memória e outros problemas.

Function

Description

_CrtMemCheckpoint

Salva um instantâneo da pilha em uma estrutura _CrtMemState fornecida pelo aplicativo.

_CrtMemDifference

Compara duas estruturas de estado de memória, salva a diferença entre eles em uma estrutura de estado de terceira e retorna verdadeiro se os dois estados são diferentes.

_CrtMemDumpStatistics

Despeja uma estrutura de dado _CrtMemState. A estrutura pode conter um instantâneo do estado da pilha de depuração em um determinado momento ou a diferença entre dois instantâneos.

_CrtMemDumpAllObjectsSince

Despeja as informações sobre todos os objetos alocados desde uma determinada foi instantâneo da pilha ou desde o início da execução. Toda vez que ele Despeja um _CLIENT_BLOCK bloco, ele chama uma função de gancho fornecida pelo aplicativo, se um tiver sido instalado usando _CrtSetDumpClient.

_CrtDumpMemoryLeaks

Determina se qualquer memória vazamentos ocorreu desde o início da execução do programa e, em caso afirmativo, despeja a todos os objetos alocados. Sempre que _CrtDumpMemoryLeaks Despeja um _CLIENT_BLOCK bloco, ele chama uma função de gancho fornecida pelo aplicativo, se um tiver sido instalado usando _CrtSetDumpClient.

Consulte também

Outros recursos

A pilha de depuração do CRT