_CrtDbgReport, _CrtDbgReportW
Genera un informe con un mensaje de depuración y envía el informe en tres posibles destinos (versión de depuración solo).
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] ...
);
Parámetros
reportType
Informe tipo: _CRT_WARN, _CRT_ERROR, y_CRT_ASSERT.filename
Puntero al nombre del archivo de código fuente donde validar/informe producido o NULL.linenumber
Número de línea del archivo de código fuente donde validar/informe producido o NULL.moduleName
Puntero al nombre del módulo (.exe o .dll) donde validar o informe.format
Cadena de la formato-CONTROL de puntero utilizada para crear el mensaje de usuario.argument
Argumentos opcionales de sustitución utilizados por format.
Valor devuelto
Para todos los destinos del informe, _CrtDbgReport y _CrtDbgReportW devuelven – 1 si se produce un error y 0 si no se encuentra ningún error.Sin embargo, cuando el destino del informe es una ventana de mensajes de depuración y el usuario hace clic en el botón de Retry , devuelva 1. de estas funciones.Si el usuario hace clic en el botón de Abort en la ventana de mensajes de depuración, estas funciones inmediatamente anulan y devuelven un valor.
La macro-instrucción de depuración de _RPT, _RPTF_CrtDbgReport para generar los informes de depuración.Las versiones de caracteres anchos de estas macros así como _ASSERT [E], _RPTWn y _RPTFWn, utilice _CrtDbgReportW para generar los informes de depuración.Cuando _CrtDbgReport o el retorno 1 de _CrtDbgReportW , estas macros iniciar el depurador, siempre que la depuración Just-In-Time está (JIT) habilitada.
Comentarios
_CrtDbgReport y _CrtDbgReportW pueden enviar el informe de depuración a tres diferentes destinos: un archivo de informe de depuración, una depuración monitor (el depurador de Visual Studio ), o una ventana de mensajes de depuración.Dos funciones de configuración, _CrtSetReportMode y _CrtSetReportFile, se utilizan para especificar el destino o destinos para cada tipo de informe.Estas funciones permiten el destino o destinos de informe para cada informe escrito para controlar por separado.Por ejemplo, es posible especificar que reportType de _CRT_WARN sólo se envía a la depuración monitor, mientras que reportType de _CRT_ASSERT se envía a una ventana de mensajes de depuración y un archivo de informe definido por el usuario.
_CrtDbgReportW constituye la versión con caracteres anchos de _CrtDbgReport.Todos los parámetros de salida y de la cadena están en cadenas de caracteres; si no es idéntica a la versión de caracteres de un solo byte.
_CrtDbgReport y _CrtDbgReportW crean el mensaje de usuario para el informe de depuración sustituyendo los argumentos de argument[n] en la cadena de format , utilizando las mismas reglas definido por printf o wprintf funciona.Estas funciones se genera el informe de depuración y determinar el destino o destinos, basándose en los modos de informe y el archivo actual definido para reportType.Cuando el informe se envía a una ventana de mensajes de depuración, filename, lineNumber, y moduleName se incluyen en la información mostrada en la ventana.
La tabla siguiente se enumeran las opciones disponibles para el modo de informe o los modos y el archivo y el comportamiento resultante de _CrtDbgReport y de _CrtDbgReportW.Estas opciones se definen como el bit marca en Crtdbg.h.
modo de informe |
archivo de informe |
_CrtDbgReport, comportamiento de _CrtDbgReportW |
---|---|---|
_CRTDBG_MODE_DEBUG |
No es aplicable |
escribe el mensaje a Windows OutputDebugString API. |
_CRTDBG_MODE_WNDW |
No es aplicable |
Llamadas Windows MessageBox API para crear el cuadro de mensaje para mostrar el mensaje junto con Abort, Retry, y los botones de Ignore .Si un usuario hace clic en Abort, _CrtDbgReport o las anulaciones de _CrtDbgReport inmediatamente.Si un usuario hace clic en Retry, devuelve 1.Si un usuario hace clic en Ignore, la ejecución continúa y _CrtDbgReport y devuelva 0 de _CrtDbgReportW .Observe que haga clic en Ignore cuando existe una condición de error a menudo los resultados en “un comportamiento indefinido.” |
_CRTDBG_MODE_FILE |
__HFILE |
Escribe el mensaje HANDLEtras, mediante Windows WriteFile API y no comprueba la validez del identificador de archivo; la aplicación es responsable de abrir el archivo de informe y pasar un identificador de archivos válido. |
_CRTDBG_MODE_FILE |
_CRTDBG_FILE_STDERR |
escribe el mensaje a stderr. |
_CRTDBG_MODE_FILE |
_CRTDBG_FILE_STDOUT |
escribe el mensaje a stdout. |
El informe se puede enviar un, dos, tres o destinos o ningún destino en absoluto.Para obtener más información sobre cómo especificar el modo de informe o los modos y el archivo de informe, vea _CrtSetReportMode y _CrtSetReportFile funciona.Para obtener más información sobre cómo utilizar las macros de depuración e informar de las funciones, vea Utilizando las macros para comprobación e informes.
Si la aplicación necesita más flexibilidad que la proporcionada por _CrtDbgReport y _CrtDbgReportW, puede escribir dispone de la función y el enlace de informe él en el mecanismo de informe de la biblioteca en tiempo de ejecución de C mediante la función de _CrtSetReportHook .
Requisitos
rutina |
Encabezado necesario |
---|---|
_CrtDbgReport |
<crtdbg.h> |
_CrtDbgReportW |
<crtdbg.h> |
Para obtener más información de compatibilidad, vea compatibilidad en la Introducción.
bibliotecas
Versiones de depuración de Bibliotecas en tiempo de ejecución de C únicamente.
Ejemplo
// crt_crtdbgreport.c
#include <crtdbg.h>
int main() {
#ifdef _DEBUG
CrtDbgReport(_CRT_ASSERT, NULL, NULL, "some module", NULL);
#endif
}
Vea crt_dbg2 para obtener un ejemplo de cómo cambiar la función del informe.