Partager via


_CrtDoForAllClientObjects

Appelle une fonction fournie par l'application pour tous les types _CLIENT_BLOCK du tas (version de débogage uniquement).

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

Paramètres

  • pfn
    Pointeur vers la fonction de rappel de la fonction fournie par l'application. Le premier paramètre de cette fonction pointe vers les données. Le second paramètre est le pointeur de contexte qui est passé à l'appel à _CrtDoForAllClientObjects.

  • context
    Pointeur vers le contexte fourni par l'application à passer à la fonction fournie par l'application.

Notes

La fonction _CrtDoForAllClientObjects recherche dans la liste liée du tas des blocs de mémoire avec le type _CLIENT_BLOCK et appelle la fonction fournie par l'application quand un bloc de ce type est trouvé. Le bloc trouvé et le paramètre context sont passés comme arguments à la fonction fournie par l'application. Pendant le débogage, une application peut effectuer le suivi d'un groupe spécifique d'allocations en appelant de façon explicite les fonctions du tas de débogage pour allouer la mémoire et en indiquant que le type de bloc _CLIENT_BLOCK doit être affecté aux blocs. Il est alors possible d'assurer le suivi de ces blocs séparément ainsi que de créer des rapports correspondants différents pendant la création de rapports sur la détection des fuites et l'état de la mémoire.

Si le champ de bits _CRTDBG_ALLOC_MEM_DF de l'indicateur _crtDbgFlag n'est pas activé, _CrtDoForAllClientObjects est immédiatement retourné. Quand _DEBUG n'est pas défini, les appels à _CrtDoForAllClientObjects sont supprimés lors du prétraitement.

Pour plus d'informations sur le type _CLIENT_BLOCK et la façon dont il peut être utilisé par d'autres fonctions de débogage, voir Types de bloc sur le tas de débogage. Pour plus d'informations sur la façon dont les blocs de mémoire sont alloués, initialisés et gérés dans la version de débogage du tas de base, voir Détails du tas de débogage CRT.

Si pfn a la valeur NULL, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, errno, _doserrno, _sys_errlist et _sys_nerr a la valeur EINVAL et la fonction retourne une valeur.

Configuration requise

Routine

En-tête requis

_CrtDoForAllClientObjects

<crtdbg.h>, <errno.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité dans l'introduction.

Bibliothèques : uniquement les versions de débogage des Fonctions des bibliothèque CRT.

Exemple

Consultez dfacobjs.

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, voir Exemples d'appel de code non managé.

Voir aussi

Référence

Routines de débogage

_CrtSetDbgFlag

_CrtReportBlockType

Autres ressources

Fonctions de création de rapports sur l'état du tas