Partager via


_CrtDbgReport, _CrtDbgReportW

Génère un rapport avec un message de débogage et envoie l'état à trois destinations possibles (version debug uniquement).

int _CrtDbgReport( 
   int reportType,
   const char *filename,
   int linenumber,
   const char *moduleName,
   const char *format [,
   argument] ... 
);
int _CrtDbgReportW( 
   int reportType,
   const wchar_t *filename,
   int linenumber,
   const wchar_t *moduleName,
   const wchar_t *format [,
   argument] ... 
);

Paramètres

  • reportType
    Type de rapport : _CRT_WARN, _CRT_ERROR, et_CRT_ASSERT.

  • filename
    Pointeur vers le nom du fichier source où l'assertion/état s'est produite ou NULL.

  • linenumber
    numéro de ligne dans le fichier source où l'assertion/état s'est produite ou NULL.

  • moduleName
    Pointeur vers le nom du module (.exe ou .dll) où l'assertion/état s'est produite.

  • format
    Pointeur vers la chaîne de format utilisée pour créer le message utilisateur.

  • argument
    arguments facultatifs de substitution utilisés par format.

Valeur de retour

pour toutes les destinations d'état, _CrtDbgReport et retour d' _CrtDbgReportW - 1 si une erreur se produit et 0 si aucune erreur n'est produite.Toutefois, lorsque la destination d'état est une fenêtre de messages de débogage et l'utilisateur clique sur le bouton d' Retry , retourner 1. de ces fonctions.Si l'utilisateur clique sur le bouton d' Abort dans la fenêtre de message de débogage, ces fonctions immédiatement interrompent et ne retournent aucune valeur.

la macro-instruction de débogage de _RPT, _RPTF_CrtDbgReport pour générer leurs rapports de débogage.Les versions à caractère élargi de ces macros ainsi que _ASSERT [E], _RPTWn et _RPTFWn, utilisez _CrtDbgReportW de générer leurs rapports de débogage.Lorsque _CrtDbgReport ou retournent 1 d' _CrtDbgReportW , ces macros démarrez le débogueur, à condition que le débogage juste-à-temps (JIT) est activé.

Notes

_CrtDbgReport et _CrtDbgReportW peuvent envoyer le rapport de débogage à trois destinations différentes : un fichier de rapport de débogage, un moniteur de débogage (le débogueur de Visual Studio ), ou une fenêtre de messages de débogage.Deux fonctions de configuration, _CrtSetReportMode et _CrtSetReportFile, sont utilisées pour spécifier la destination ou des destinations pour chaque état type.Ces fonctions permettent la destination de création de rapport ou des destinations pour chaque état tapez pour être séparément contrôlées.Par exemple, il est possible de spécifier qu' reportType d' _CRT_WARN uniquement être envoyé au moniteur de débogage, tandis que reportType d' _CRT_ASSERT soit envoyé à une fenêtre de messages de débogage et à un fichier de rapport défini par l'utilisateur.

_CrtDbgReportW est la version à caractère élargi d' _CrtDbgReport.Tous ses paramètres de sortie et de chaîne sont dans des chaînes à caractères larges ; sinon elle est identique à la version de caractères codés sur un seul octet.

_CrtDbgReport et _CrtDbgReportW créent le message utilisateur pour le rapport de débogage en substituant les arguments d' argument[]ndans la chaîne d' format , en utilisant les mêmes règles définies par printf ou wprintf s'exécute.Ces fonctions ensuite génèrent le rapport de débogage et déterminent la destination ou des destinations, selon les vues de Rapport et le fichier actuels définis pour reportType.Lorsque l'état est envoyé à une fenêtre de messages de débogage, filename, lineNumber, et moduleName sont inclus dans les informations affichées dans la fenêtre.

Le tableau suivant répertorie les options disponibles pour le mode Rapport ou des modes et le fichier et le comportement résultant d' _CrtDbgReport et d' _CrtDbgReportW.Ces options sont définies comme bits indicateurs dans Crtdbg.h.

mode Rapport

fichier de rapport

_CrtDbgReport, le comportement d' _CrtDbgReportW

_CRTDBG_MODE_DEBUG

Non applicable

Écrit le message à l'API d' OutputDebugString windows.

_CRTDBG_MODE_WNDW

Non applicable

API de MessageBox de fenêtres d'appels pour créer le message à afficher le message avec Abort, Retry, les boutons et d' Ignore .si un utilisateur clique sur Abort, _CrtDbgReport ou _CrtDbgReport s'interrompt immédiatement.Si un utilisateur clique sur Retry, il retourne 1.Si un utilisateur clique sur Ignore, l'exécution continue et _CrtDbgReport et retournent 0 d' _CrtDbgReportW .Notez qu'un clic sur Ignore lorsqu'une condition d'erreur existe souvent des résultats dans « un comportement indéfini. »

_CRTDBG_MODE_FILE

__HFILE

Écrit le message à HANDLEécrit par l'utilisateur, à l'aide de l'API de WriteFile windows et ne vérifie pas la validité de le handle de fichier ; l'application est chargé d'ouvrir le fichier de rapport et de passer un handle de fichier valide.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDERR

écrit le message à stderr.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDOUT

écrit le message à stdout.

l'état peut être envoyé à une, deux, ou trois destinations ou à aucune destination du tout.Pour plus d'informations sur la spécification du mode Rapport ou les modes et le fichier de rapport, consultez _CrtSetReportMode et _CrtSetReportFile s'exécute.Pour plus d'informations sur l'utilisation des macros et des fonctions de création de rapports de débogage, consultez À l'aide de les macros pour la vérification et la création de rapports.

Si votre application a besoin de plus de souplesse que celui fourni par _CrtDbgReport et _CrtDbgReportW, vous pouvez écrire votre propre fonction de rapport et la connecter dans la bibliothèque Runtime C enregistrant le mécanisme à l'aide de la fonction de _CrtSetReportHook .

Configuration requise

routine

en-tête requis

_CrtDbgReport

<crtdbg.h>

_CrtDbgReportW

<crtdbg.h>

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

bibliothèques

Versions debug de Bibliothèques runtime C uniquement.

Exemple

// crt_crtdbgreport.c
#include <crtdbg.h>

int main() {
#ifdef _DEBUG
   CrtDbgReport(_CRT_ASSERT, NULL, NULL, "some module", NULL);
#endif
}

Consultez crt_dbg2 pour obtenir un exemple de la modification de la fonction d'état.

Équivalent .NET Framework

Voir aussi

Référence

Déboguez des routines

_CrtSetReportMode

_CrtSetReportFile

printf, _printf_l, wprintf, _wprintf_l

_DEBUG