Estado de heap relatório funções
Este tópico se aplica a:
Edição |
Visual Basic |
C# |
C++ |
Desenvolvedores Web |
---|---|---|---|---|
Express |
Somente nativo |
|||
Padrão |
Somente nativo |
|||
PRO e equipe |
Somente nativo |
Legenda de tabela:
Aplica-se |
|
Não é aplicada |
|
Comando ou comandos oculta por padrão. |
Várias funções relatório o Sumário da pilha de depurar em dado momento.
_CrtMemState
Para capturar um instantâneo do estado do resumo de heap em um determinado momento, use a estrutura _CrtMemState definida no 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 do heap de depurar.Em seguida, em duas matrizes, ele registra quantos de cada tipo de bloco 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. Por fim, ele registra o maior número de bytes alocados no heap sistema autônomo um todo até esse ponto e o número de bytes alocados no momento.
Outras funções de CRT Reporting
As seguintes funções relatam o estado e Sumário do heap e use as informações para ajudar a detectar vazamentos de memória e outros problemas.
Função |
Descrição |
---|---|
Salva um instantâneo do heap em uma estrutura _CrtMemState fornecido pelo aplicativo. |
|
Compara duas estruturas de estado da memória, salva a diferença entre eles em uma estrutura de estado de terceira e retorna VERDADEIRO se dois estados são diferentes. |
|
Despeja uma estrutura _CrtMemState determinado.A estrutura pode conter um instantâneo do estado da depurar heap em dado momento ou a diferença entre dois instantâneos. |
|
Despeja informações sobre todos os objetos alocados desde um determinada instantâneo foi tirado da pilha ou de início da execução.Cada time-Despeja um _CLIENT_BLOCK bloco, ele chama uma função de gancho fornecida pelo aplicativo, se um tiver sido instalado usando _CrtSetDumpClient. |
|
Determina se qualquer memória vazamentos ocorreu desde o início da execução do programa e, em caso afirmativo, descarta todos os objetos alocados.Cada vez _CrtDumpMemoryLeaks Despeja um _CLIENT_BLOCK bloco, ele chama uma função de gancho fornecida pelo aplicativo, se um tiver sido instalado usando _CrtSetDumpClient. |