Compartir a través de


_CrtSetReportMode

Especifica el destino de un tipo de informe específico generado por _CrtDbgReport y cualquier macro que llame a _CrtDbgReport, _CrtDbgReportW, por ejemplo _ASSERT, _ASSERTE (Macros), _ASSERT, _ASSERTE (Macros), _RPT, _RPTF, _RPTW, _RPTFW (Macros) y _RPT, _RPTF, _RPTW, _RPTFW (Macros) (solo versión de depuración).

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 el 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, vea errno, _doserrno, _sys_errlist y _sys_nerr.

Comentarios

_CrtSetReportMode especifica el destino de salida para _CrtDbgReport. Dado que las macros _ASSERT, _ASSERTE, _RPT y _CrtDbgReport llaman a _CrtSetReportMode, _RPTF 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 a _CrtSetReportMode para definir el destino de salida de los mensajes, los valores predeterminados siguientes son los activos:

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

  • Las advertencias de las aplicaciones de consola no se muestran.

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 requieren 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 Abort, Retry e Ignore.

_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 consiguiente, es posible tener más de un destino definido para un único 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, el modo o los modos de informe de cada tipo de informe se pueden controlar por separado. Por ejemplo, se puede especificar que el reportType de _CRT_WARN se envíe a una cadena de depuración de salida, y que _CRT_ASSERT se muestre en una ventana de mensajes de depuración y se envíe a stderr, como ya se ha mostrado.

Requisitos

Rutina

Encabezado necesario

Encabezado opcional

_CrtSetReportMode

<crtdbg.h>

<errno.h>

Para obtener más información sobre compatibilidad, vea Compatibilidad en la introducción.

Bibliotecas: solo versiones de depuración de Características de la biblioteca CRT.

Equivalente en .NET Framework

No es aplicable Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

Vea también

Referencia

Rutinas de depuración