_CrtDumpMemoryLeaks
Despeja todos os blocos de memória no heap de depuração quando ocorre uma perda de memória (somente versão de depuração).
Sintaxe
int _CrtDumpMemoryLeaks( void );
Valor retornado
_CrtDumpMemoryLeaks
retornará TRUE
se for encontrada uma perda de memória. Caso contrário, a função retorna FALSE
.
Comentários
A função _CrtDumpMemoryLeaks
determina se ocorreu uma perda de memória desde o início da execução do programa. Quando uma perda é encontrada, as informações de cabeçalho de depuração de todos os objetos no heap são despejadas em um formato legível pelo usuário. Quando _DEBUG
não está definido, as chamadas para _CrtDumpMemoryLeaks
são removidas durante o pré-processamento.
_CrtDumpMemoryLeaks
é chamado com frequência ao final da execução do programa para verificar se toda a memória alocada pelo aplicativo foi liberada. A função pode ser chamada automaticamente no encerramento do programa, por meio da ativação do campo de bits _CRTDBG_LEAK_CHECK_DF
do sinalizador _crtDbgFlag
usando a função _CrtSetDbgFlag
.
_CrtDumpMemoryLeaks
chama _CrtMemCheckpoint
para obter o estado atual do heap e, em seguida, examina o estado em busca de blocos que não foram liberados. Quando um bloco não liberado é encontrado, _CrtDumpMemoryLeaks
chama _CrtMemDumpAllObjectsSince
para despejar informações de todos os objetos alocados no heap a após o início da execução do programa.
Por padrão, os blocos internos do runtime do C (_CRT_BLOCK
) não são incluídos em operações de despejo de memória. A função _CrtSetDbgFlag
pode ser usada para ativar o bit _CRTDBG_CHECK_CRT_DF
de _crtDbgFlag
para incluir esses blocos no processo de detecção de perda.
Para obter mais informações sobre as funções de estado do heap e a estrutura _CrtMemState
, consulte Funções de relatório de estado do heap. Para obter mais informações sobre como os blocos de memória são alocados, inicializados e gerenciados na versão de depuração do heap de base, consulte Detalhes do heap de depuração CRT.
Requisitos
Rotina | Cabeçalho necessário |
---|---|
_CrtDumpMemoryLeaks |
<crtdbg.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Bibliotecas
Somente versões de depuração de bibliotecas de tempo de execução C.
Exemplo
Para encontrar um exemplo de como usar _CrtDumpMemoryLeaks
, confira crt_dbg1
.