Partager via


_CrtDoForAllClientObjects

Appelle une fonction fournie par l'application pour tous les _CLIENT_BLOCK dans le tas (version debug uniquement).

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

Paramètres

  • pfn
    Pointeur vers une fonction de rappel de fonction fournie par l'application.le premier paramètre aux points de cette fonction aux 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 d' _CrtDoForAllClientObjects recherche la liste liée du tas pour les blocs de mémoire avec le type d' _CLIENT_BLOCK et appelle la fonction fournie par l'application lorsqu'un bloc de ce type est trouvé.Le bloc trouvé et le paramètre d' context sont passés en tant qu'arguments à la fonction fournie par l'application.Pendant le débogage, une application peut suivre un groupe spécifique d'allocations en appelant explicitement les fonctions du tas de débogage pour allouer de la mémoire et en les spécifiant que les blocs soient assignés _CLIENT_BLOCK type de bloc.Ces blocs peuvent ensuite être suivis séparément et signalé différemment pendant la détection des fuites et l'enregistrement des états de la mémoire.

Si le champ de bits d' _CRTDBG_ALLOC_MEM_DF de la balise de _crtDbgFlag n'est pas activé, _CrtDoForAllClientObjects retourne immédiatement.Lorsque _DEBUG n'est pas défini, les appels à _CrtDoForAllClientObjects sont supprimés pendant le prétraitement.

Pour plus d'informations sur le type d' _CLIENT_BLOCK et comment il peut être utilisé par d'autres fonctions de débogage, consultez Types de bloc sur le tas de débogage.Pour plus d'informations sur la manière dont les blocs de mémoire sont alloués, initialisés, et gérés dans la version debug de tas de base, consultez Gestion de la mémoire et tas de débogage.

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

Configuration requise

routine

en-tête requis

_CrtDoForAllClientObjects

<crtdbg.h> , <errno.h>

Pour plus d'informations de compatibilité, consultez Compatibilité dans l'introduction.

bibliothèques : Versions debug de Fonctionnalités de bibliothèque CRT uniquement.

Exemple

Consultez dfacobjs.

Équivalent .NET Framework

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

Voir aussi

Référence

Déboguez des routines

_CrtSetDbgFlag

_CrtReportBlockType

Concepts

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