_CrtSetReportMode

Especifica el destino o los destinos de un tipo de informe específico generado por _CrtDbgReport y las macros que llaman a_CrtDbgReport ,_CrtDbgReportW , _ASSERTcomo , macros_ASSERT_EXPR_ASSERTEy _RPT, _RPTF, , , _RPTWmacros _RPTFW (solo versión de depuración).

Sintaxis

int _CrtSetReportMode(
   int reportType,
   int reportMode
);

Parámetros

reportType
Tipo de informe: _CRT_WARN, _CRT_ERROR y _CRT_ASSERT.

reportMode
Nuevo modo de informe para reportType.

Valor devuelto

Cuando se finaliza correctamente, _CrtSetReportMode devuelve el modo de informe anterior para el tipo de informe especificado en reportType. Si se pasa un valor no válido como reportType o se especifica un modo no válido para reportMode, _CrtSetReportMode invoca al controlador de parámetros no válidos como se describe en Validación de parámetros. Si la ejecución puede continuar, esta función establece errno en EINVAL y devuelve -1. Para obtener más información, veaerrno, _doserrno, _sys_errlisty _sys_nerr.

Comentarios

_CrtSetReportMode especifica el destino de salida para _CrtDbgReport. Dado que las macros _ASSERT, _ASSERTE, _RPT y _RPTF llaman a _CrtDbgReport, _CrtSetReportMode especifica el destino de salida de texto especificado con las macros.

Cuando _DEBUG no se define, las llamadas a _CrtSetReportMode se quitan durante el preprocesamiento.

Si no llama _CrtSetReportMode a para definir el destino de salida de los mensajes, los valores predeterminados siguientes están en vigor:

  • Los errores de aserción y los demás errores se dirigen a una ventana de mensajes de depuración.

  • Las advertencias de las aplicaciones se Windows se envían a la ventana de salida del depurador.

  • No se muestran advertencias de las aplicaciones de consola.

En la tabla siguiente se enumeran los tipos de informe definidos en Crtdbg.h.

Tipo de informe Descripción
_CRT_WARN Advertencias, mensajes e información que no necesitan atención inmediata.
_CRT_ERROR Errores, problemas irrecuperables y problemas que requieren atención inmediata.
_CRT_ASSERT Errores de aserción (expresiones declaradas que se evalúan como FALSE).

La función _CrtSetReportMode asigna el nuevo modo de informe especificado en reportMode al tipo de informe especificado en reportType y devuelve el modo de informe previamente definido para reportType. En la tabla siguiente se enumeran las opciones disponibles para reportMode y el comportamiento resultante de _CrtDbgReport. Estas opciones se definen como marcas de bits en Crtdbg.h.

Modo de informe Comportamiento de _CrtDbgReport
_CRTDBG_MODE_DEBUG Escribe el mensaje en la ventana de salida del depurador.
_CRTDBG_MODE_FILE Escribe el mensaje en un identificador de archivos proporcionado por el usuario. Es necesario llamar a _CrtSetReportFile para definir el archivo o flujo concreto que se debe usar como destino.
_CRTDBG_MODE_WNDW Crea un cuadro de mensaje para mostrar el mensaje junto con los botones Anular, Reintentar e Omitir .
_CRTDBG_REPORT_MODE Devuelve reportMode correspondiente al objeto reportType especificado:

1 _CRTDBG_MODE_FILE

2 _CRTDBG_MODE_DEBUG

4 _CRTDBG_MODE_WNDW

Cada tipo de informe se puede designar mediante uno, dos o tres modos, o sin ningún modo. Por lo tanto, es posible tener más de un destino definido para un solo tipo de informe. Por ejemplo, el fragmento de código siguiente hace que se envíen errores de aserción a una ventana de mensajes de depuración y a stderr:

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

Además, puede controlar el modo de informe o los modos de cada tipo de informe por separado. Por ejemplo, es posible especificar que un reportType de _CRT_WARN va a una cadena de depuración de salida, mientras _CRT_ASSERT se muestra mediante una ventana de mensaje de depuración y se envía a stderr, como se muestra anteriormente.

Requisitos

Routine Encabezado necesario Encabezado opcional
_CrtSetReportMode <crtdbg.h> <errno.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Bibliotecas: solo versiones de depuración de las bibliotecas en tiempo de ejecución de C.

Consulte también

Rutinas de depuración