Share via


_CrtDoForAllClientObjects

Chama uma função fornecida por aplicativo para todos os tipos de _CLIENT_BLOCK no heap (apenas versão de depuração).

void _CrtDoForAllClientObjects(     void ( * pfn )( void *, void * ),    void *context );

Parâmetros

  • pfn
    Ponteiro para a função de retorno de chamada da função fornecida pelo aplicativo. O primeiro parâmetro para essa função aponta para os dados. O segundo parâmetro é o ponteiro de contexto enviado à chamada para _CrtDoForAllClientObjects.

  • context
    Ponteiro para o contexto fornecido pelo aplicativo para enviar à função fornecida pelo aplicativo.

Comentários

A função _CrtDoForAllClientObjects pesquisa na lista vinculada do heap por blocos de memória com o tipo _CLIENT_BLOCK e chama a função fornecida pelo aplicativo quando um bloco desse tipo é encontrado. O bloco encontrado e o parâmetro context são enviados como argumentos para a função fornecida pelo aplicativo. Durante a depuração, um aplicativo pode rastrear um grupo específico de alocações de forma explícita, chamando as funções de heap de depuração para alocar a memória e especificar quais blocos estão atribuídos ao tipo de bloco _CLIENT_BLOCK. Esses blocos podem ser rastreados separadamente e relatados de modo diferente durante a detecção de vazamento e o relatório de estado da memória.

Se o campo de bit _CRTDBG_ALLOC_MEM_DF do sinalizador _crtDbgFlag não estiver ativado, o _CrtDoForAllClientObjects é retornado imediatamente. Quando _DEBUG não está definido, as chamadas para _CrtDoForAllClientObjects são removidas durante o pré-processamento.

Para obter mais informações sobre o tipo _CLIENT_BLOCK e como ele pode ser usado por outras funções de depuração, consulte Tipos de blocos na heap de depuração. Para obter 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 da pilha de depuração CRT.

Se pfn for NULL, o manipulador de parâmetros inválido será invocado, como descrito em Validação do parâmetro. Se a execução puder continuar, errno, _doserrno, _sys_errlist e _sys_nerr será definido para EINVAL e a função será retornada.

Requisitos

Rotina

Cabeçalho necessário

_CrtDoForAllClientObjects

<crtdbg.h>, <errno.h>

Para obter mais informações sobre compatibilidade, consulte Compatibilidade na Introdução.

Bibliotecas: versões de depuração do Recursos da biblioteca CRT apenas.

Exemplo

Consulte dfacobjs.

Equivalência do .NET Framework

Não aplicável. Para chamar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Rotinas de depuração

_CrtSetDbgFlag

_CrtReportBlockType

Outros recursos

Funções de relatório do estado heap