Partager via


_RPT, _RPTF, , _RPTFW _RPTWMacros

Suit la progression d’une application en générant un rapport de débogage (version debug uniquement). Le n suffixe spécifie le nombre d’arguments dans args, et peut être 0, 1, 2, 3, 4 ou 5.

Syntaxe

_RPTn(
   reportType,
   format,
   ...[args]
);
_RPTFn(
   reportType,
   format,
   [args]
);
_RPTWn(
   reportType,
   format
   [args]
);
_RPTFWn(
   reportType,
   format
   [args]
);

Paramètres

reportType
Type de rapport : _CRT_WARN, _CRT_ERROR ou _CRT_ASSERT.

format
Chaîne de contrôle de format utilisée pour créer le message utilisateur.

args
Arguments de substitution utilisés par format.

Notes

Toutes ces macros prennent les paramètres et format les reportType paramètres. En outre, ils peuvent également prendre jusqu’à quatre arguments supplémentaires, indiqués par le nombre ajouté au nom de la macro. Par exemple, _RPT0 et _RPTF0 ne prendre plus d’arguments, _RPT1 _RPTF1 et prendre arg1, _RPT2 et _RPTF2 prendre arg1 et arg2, et ainsi de suite.

Les _RPT macros et _RPTF les macros sont similaires à la printf fonction, car elles peuvent être utilisées pour suivre la progression d’une application pendant le processus de débogage. Toutefois, ces macros sont plus flexibles que printf parce qu’elles n’ont pas besoin d’être placées dans des instructions #ifdef pour les empêcher d’être appelées dans une build de vente au détail d’une application. Cette flexibilité est obtenue à l’aide de la _DEBUG macro ; les _RPT macros et _RPTF les macros sont disponibles uniquement lorsque l’indicateur _DEBUG est défini. Quand _DEBUG elle n’est pas définie, les appels à ces macros sont supprimés pendant le prétraitement.

Les macros _RPTW et _RPTFW sont des versions à caractères larges de ces macros. Ils sont comparables à wprintf et acceptent les chaînes de caractères larges en tant qu’arguments.

Les _RPT macros appellent la _CrtDbgReport fonction pour générer un rapport de débogage avec un message utilisateur. Les macros _RPTW appellent la fonction _CrtDbgReportW pour générer le même rapport avec des caractères larges. Outre le message utilisateur, les macros _RPTF et _RPTFW créent un rapport de débogage à partir du fichier source et du numéro de ligne où la macro de rapport a été appelée. Le message utilisateur est créé en remplaçant les arg[n] arguments dans la format chaîne, à l’aide des mêmes règles définies par la printf fonction.

_CrtDbgReport ou _CrtDbgReportW génère le rapport de débogage et détermine ses destinations en fonction des modes de rapport actifs et du fichier défini pour reportType. Les _CrtSetReportMode fonctions et _CrtSetReportFile les fonctions sont utilisées pour définir les destinations pour chaque type de rapport.

Si une _RPT macro est appelée et _CrtSetReportMode _CrtSetReportFile n’a pas été appelée, les messages sont affichés comme suit :

Type de rapport Destination de sortie
_CRT_WARN Le texte d’avertissement n’est pas affiché.
_CRT_ERROR Fenêtre contextuelle. Comme si _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); avait été spécifié.
_CRT_ASSERT Comme pour _CRT_ERROR.

Lorsque la destination est une fenêtre de message de débogage et que l’utilisateur choisit le bouton Réessayer ou _CrtDbgReport _CrtDbgReportW retourne 1. Cette valeur de retour entraîne le démarrage de ces macros au débogueur, si le débogage juste-à-temps (JIT) est activé. Pour plus d’informations sur l’utilisation de ces macros comme mécanisme de gestion des erreurs de débogage, consultez Macros pour la création de rapports.

Deux autres macros génèrent un rapport de débogage. La _ASSERT macro génère un rapport, mais uniquement lorsque son argument d’expression est évalué à FALSE. _ASSERTE est exactement semblable _ASSERT, mais inclut l’expression ayant échoué dans le rapport généré.

Spécifications

Macro En-tête requis
Macros _RPT <crtdbg.h>
Macros _RPTF <crtdbg.h>
Macros _RPTW <crtdbg.h>
Macros _RPTFW <crtdbg.h>

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

Bibliothèques

Uniquement les versions de débogage des bibliothèques Runtime C.

Bien que ces macros soient disponibles lorsque vous incluez crtdbg.h, pour s’exécuter, l’application doit établir un lien avec l’une des bibliothèques de débogage, car ces macros appellent d’autres fonctions d’exécution.

Exemple

Consultez l’exemple de l’article _ASSERT .

Voir aussi

Routines de débogage