Déboguez des routines

La version debug de la bibliothèque Runtime C fournit de nombreux services de diagnostic qui facilite considérablement les programmes de débogage et permettant aux développeurs :

  • Étape directement dans les fonctions runtime pendant le débogage

  • assertions, erreurs, et exceptions de résolution

  • Suivez les allocations de tas et empêcher des fuites de mémoire

  • messages de débogage d'état à l'utilisateur

pour utiliser ces routines, la balise de _DEBUG doit être définie.Toutes ces routines n'ont aucun effet dans une version commerciale d'une application.Pour plus d'informations sur la façon d'utiliser les nouvelles routines de débogage, consultez Techniques de débogage CRT.

Versions debug des routines de la bibliothèque runtime C

routine

Utilisation

équivalent du .NET Framework

_ASSERT

Évaluez une expression et générer un rapport de débogage lorsque le résultat est FAUX

System : : diagnostic : : débogage : : assertion

_ASSERTE

Semblable à _ASSERT, mais inclut l'expression dans le rapport généré

System : : diagnostic : : débogage : : assertion

_CrtCheckMemory

Vérifiez l'intégrité des blocs de mémoire alloués sur le tas de débogage

System : : diagnostic : : PerformanceCounter

_CrtDbgBreak

définit un point d'arrêt.

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

_CrtDbgReport, _CrtDbgReportW

générez un rapport de débogage avec un message utilisateur et envoyez l'état à trois destinations possibles

System : : diagnostic : : débogage : : Écriture, System : : diagnostic : : débogage : : Writeline, System : : diagnostic : : débogage : : WriteIf, System : : diagnostic : : débogage : : WriteLineIf

_CrtDoForAllClientObjects

appelez une fonction fournie par l'application pour tous les types d' _CLIENT_BLOCK sur le tas

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

_CrtDumpMemoryLeaks

Clichez tous les blocs de mémoire sur le tas de débogage lorsqu'une fuite de mémoire significatives s'est produite

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

_CrtIsMemoryBlock

Vérifiez qu'un bloc de mémoire spécifié se trouve dans le tas local et qu'il a un identificateur type de bloc de tas de débogage valide

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

_CrtIsValidHeapPointer

vérifie qu'un pointeur spécifié est dans le tas local

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

_CrtIsValidPointer

Vérifiez qu'une plage spécifiée de mémoire est valide pour la lecture et l'écriture

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

_CrtMemCheckpoint

Obtenez l'état actuel du tas de débogage et stockez -le dans une structure fournie par l'application d' _CrtMemState

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

_CrtMemDifference

Comparez deux états de la mémoire pour les différences notables et retournez les résultats

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

_CrtMemDumpAllObjectsSince

Clichez des informations sur les objets sur le tas comme un point de contrôle spécifié a été pris ou le début de l'exécution du programme

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

_CrtMemDumpStatistics

Clichez les informations d'en-tête du débogage d'un état spécifié de mémoire dans un formulaire utilisateur-lisible

System : : diagnostic : : PerformanceCounter

_CrtReportBlockType

Retourne l'type de bloc/sous-type associés à un pointeur donné de bloc de tas de débogage.

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

_CrtSetAllocHook

Installez une fonction d'allocation définie par le client en l'accrochant dans le processus d'allocation de mémoire de débogage du runtime C

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

_CrtSetBreakAlloc

Définissez un point d'arrêt sur un numéro de commande spécifié d'allocation d'objets

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

_CrtSetDbgFlag

Récupérez ou modifiez l'état de l'indicateur d' _crtDbgFlag pour contrôler le comportement d'allocation de tas de débogage

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

_CrtSetDumpClient

Installez une fonction définie par l'application qui est appelée chaque fois qu'une fonction de vidage du débogage est appelée pour faire un dump des blocs de mémoire de type d' _CLIENT_BLOCK

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

_CrtSetReportFile

Identifiez le fichier ou un flux de données pour être utilisé comme destination pour un type spécifique d'état par _CrtDbgReport

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

_CrtSetReportHook

Installez une fonction de rapport définie par le client en l'accrochant dans le processus de création de rapport de débogage du runtime C

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

_CrtSetReportHook2, _CrtSetReportHookW2

Installe ou désinstalle une fonction de rapport définie par le client en l'accrochant dans le processus de création de rapport de débogage du runtime C.

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

_CrtSetReportMode

Spécifiez des destinations générales pour un type spécifique d'état généré par _CrtDbgReport

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

_RPT [0,1,2,3,4]

Suivez la progression de l'application en générant un rapport de débogage en appelant _CrtDbgReport avec une chaîne de format et un nombre variable d'arguments.Ne fournit aucune information relative au fichier source et le numéro de ligne.

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

_RPTF [0,1,2,3,4]

Semblable aux macros d' _RPTn , mais fournit le nom de fichier et le numéro de ligne source où la demande d'état a démarré

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

_calloc_dbg

Allouez un nombre spécifié de blocs de mémoire sur le tas avec l'espace supplémentaire pour un en-tête de débogage et remplacez les mémoires tampons

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

_expand_dbg

Redimensionnez un bloc de mémoire spécifié sur le tas en développant ou en contractant le bloc

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

_free_dbg

libérez un bloc de mémoire sur le tas

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

_fullpath_dbg, _wfullpath_dbg

Créez un absolu ou un chemin d'accès complet pour le nom du chemin d'accès relatif spécifié, à _malloc_dbg pour allouer de la mémoire.

System : : E/S : : fichier : : Create

_getcwd_dbg, _wgetcwd_dbg

Obtenez le répertoire de travail actuel, à l'aide de _malloc_dbg pour allouer de la mémoire.

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

_malloc_dbg

Allouez un bloc de mémoire sur le tas avec l'espace supplémentaire pour un en-tête de débogage et remplacez les mémoires tampons

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

_msize_dbg

Calcule la taille d'un bloc de mémoire sur le tas

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

_realloc_dbg

réaffectez un bloc de mémoire spécifié sur le tas en déplaçant et/ou en redimensionnant le bloc

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

_strdup_dbg, _wcsdup_dbg

Duplique une chaîne, à l'aide de _malloc_dbg pour allouer de la mémoire.

System : : chaîne : : clone

_tempnam_dbg, _wtempnam_dbg

Générez les noms que vous pouvez utiliser pour créer des fichiers temporaires, à l'aide de _malloc_dbg pour allouer de la mémoire.

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

Les routines de débogage peuvent être utilisées pour parcourir le code source pour la plupart des autres routines runtime C pendant le processus de débogage.Toutefois, Microsoft considère une partie de la technologie propriétaire et, par conséquent, ne fournit pas le code source pour ces routines.La plupart de ces routines appartiennent à la gestion des exceptions ou à la virgule flottante traitement des groupes, mais d'autres sont également incluses.Le tableau suivant répertorie ces routines.

Routines d'exécution C qui ne sont pas disponibles dans le formulaire de code source

acos, acosf

_fpclass

_nextafter

asin

_fpieee_flt

pow de pow

atan, atan2

_fpreset

printf, _printf_l, wprintf, _wprintf_l, printf_s, _printf_s_l, wprintf_s, _wprintf_s_l*

_cabs

frexp

_scalb

ceil

_hypot

scanf, _scanf_l, wscanf, _wscanf_l, scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l*

_chgsign, _chgsignl

_isnan

setjmp

_clear87, _clearfp

_j0

sin

_control87, _controlfp, __control87_2

_j1

sinh

_copysign, _copysignl

_jn

sqrt

cos

ldexp

_status87, _statusfp

cosh

log

tan

Exp

log10

tanh

fabs

_logb

_y0

_finite

longjmp

_y1

floor

_matherr

_yn

fmod

modf

 

* Bien que le code source est disponible pour la plupart de cette routine, il effectue un appel interne à une autre routine pour laquelle le code source n'est pas donné.

Plusieurs fonctions runtime C et les opérateurs C++ se comportent différemment lorsqu'ils sont appelés d'une version debug d'une application.(Notez qu'une version debug d'une application peut être effectuée par l'un ou l'autre qui définit la balise d' _DEBUG ou en liant à une version debug de la bibliothèque Runtime C.) Les différences de comportement se composent généralement des fonctionnalités supplémentaires ou les informations fournies par la routine pour prendre en charge le processus de débogage.Le tableau suivant répertorie ces routines.

routines qui se comportent différemment dans une version debug d'une application

Routine C arrêt

Opérateur C++ suppression

Routine C assertion

Opérateur C++ nouveau

Pour plus d'informations sur l'utilisation des versions debug des opérateurs C++ dans le tableau précédent, consultez L'utilisation du tas de débogage du C++.

Voir aussi

Référence

Package de runtime par catégorie

Vérifications des erreurs au moment de l'exécution