_CrtSetReportMode

Spécifie la destination ou les destinations d’un type de rapport spécifique généré par _CrtDbgReport et toutes les macros qui appellent_CrtDbgReport , _CrtDbgReportWtelles que _ASSERT, _ASSERTE, _ASSERT_EXPR macros et _RPT, _RPTF, _RPTW_RPTFW macros (version de débogage uniquement).

Syntaxe

int _CrtSetReportMode(
   int reportType,
   int reportMode
);

Paramètres

reportType
Type de rapport : _CRT_WARN, _CRT_ERROR et _CRT_ASSERT.

reportMode
Nouveau(x) mode(s) de rapport pour reportType.

Valeur retournée

Quand l’opération réussit, _CrtSetReportMode retourne le(s) mode(s) de rapport précédent(s) pour le type de rapport spécifié dans reportType. Si une valeur non valide est passée en tant que reportType ou en mode non valide est spécifiée pour reportMode, _CrtSetReportMode appelle le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à se poursuivre, cette fonction affecte à errno la valeur EINVAL et retourne -1. Pour plus d'informations, voir errno, _doserrno, _sys_errlist et _sys_nerr.

Notes

_CrtSetReportMode spécifie la destination de sortie pour _CrtDbgReport. Étant donné que les macros _ASSERT, _ASSERTE, _RPT et _RPTF appellent _CrtDbgReport, _CrtSetReportMode spécifie la destination de sortie du texte spécifié avec ces macros.

Quand _DEBUG elle n’est pas définie, les appels à supprimer _CrtSetReportMode pendant le prétraitement.

Si vous n’appelez _CrtSetReportMode pas pour définir la destination de sortie des messages, les valeurs par défaut suivantes sont en vigueur :

  • Les erreurs et les échecs d’assertion sont dirigés vers une fenêtre de message de débogage.

  • Les avertissements émanant des applications Windows sont envoyés à la fenêtre de sortie du débogueur.

  • Les avertissements des applications console ne sont pas affichés.

Le tableau suivant répertorie les types de rapports définis dans Crtdbg.h.

Type de rapport Description
_CRT_WARN Avertissements, messages et informations qui n’ont pas besoin d’une attention immédiate.
_CRT_ERROR Erreurs, problèmes irrécupérables et problèmes qui requièrent une attention immédiate.
_CRT_ASSERT Échecs d’assertion (expressions déclarées évaluées à FALSE).

La fonction _CrtSetReportMode assigne le nouveau mode de rapport spécifié dans reportMode au type de rapport spécifié dans reportType et retourne le mode de rapport défini pour reportType. Le tableau suivant répertorie les options disponibles pour reportMode et le comportement résultant de _CrtDbgReport. Ces options sont définies sous forme d’indicateurs binaires dans Crtdbg.h.

Mode de rapport Comportement de _CrtDbgReport
_CRTDBG_MODE_DEBUG Écrit le message dans la fenêtre de sortie du débogueur.
_CRTDBG_MODE_FILE Écrit le message dans un handle de fichier fourni par l’utilisateur. _CrtSetReportFile doit être appelé pour définir le fichier ou le flux spécifique à utiliser comme destination.
_CRTDBG_MODE_WNDW Crée une zone de message pour afficher le message avec les boutons Abandonner, Réessayer et Ignorer .
_CRTDBG_REPORT_MODE Retourne reportMode pour le reportType spécifié :

1 _CRTDBG_MODE_FILE

2 _CRTDBG_MODE_DEBUG

4 _CRTDBG_MODE_WNDW

Chaque type de rapport peut être signalé à l’aide d’un, deux ou trois modes ou sans aucun mode. Par conséquent, il est possible d’avoir plusieurs destinations définies pour un type de rapport unique. Par exemple, le fragment de code suivant envoie les échecs d’assertion à une fenêtre de message de débogage et à stderr :

_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_WNDW );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );

En outre, vous pouvez contrôler le mode de création de rapports ou les modes pour chaque type de rapport séparément. Par exemple, il est possible de spécifier qu’une reportType chaîne _CRT_ASSERT de _CRT_WARN débogage de sortie est affichée à l’aide d’une fenêtre de message de débogage et envoyée à stderr, comme illustré précédemment.

Spécifications

Routine En-tête requis En-tête facultatif
_CrtSetReportMode <crtdbg.h> <errno.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Bibliothèques : déboguer uniquement les versions des bibliothèques runtime C.

Voir aussi

Routines de débogage