_RPT
, _RPTF
, , _RPTFW
_RPTW
Macros
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
.