Compartir a través de


_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.

Equivalente en .NET Framework

Vea también

Referencia

Rutinas de depuración

_CrtSetReportMode

_CrtSetReportFile

printf, _printf_l, wprintf, _wprintf_l

_DEBUG