Pregunta

Estoy utilizando ASSERTE macro para comprobar si hay condiciones previas. De acuerdo con su definición está utilizando ASSERT_BASE, que a su vez llama a _CrtDbgReportW para imprimir el mensaje. ¿De dónde viene la salida _CrtDbgReportW va a?

Yo asumiría que si la aplicación se inicia desde depurador, que iría a depurador ventana. ¿Dónde estarían los mensajes van si no está bajo depurador?

¿Fue útil?

Solución

La salida para _CrtDbgReportW depende la forma en que lo creó. Por defecto se envía al OutputDebugString API.

Depuradores trampa de la salida OutputDebugString y, normalmente, les mostrará en la ventana del depurador como sugieres.

También hay aplicaciones que atrapan la salida como DebugView que se puede utilizar para aplicaciones de PC.

Actualización: Me perdí el bit de Windows Mobile. Todavía beleave que es la salida a la OutputDebugString pero no sé de cualquier aplicación de terceros que funciona. La única forma que conozco de controlar la salida de OutputDebugString bajo Windows Mobile es utilizar la Funciones de depuración DebugActiveProcess / WaitForDebugEvent para atrapar a los eventos OUTPUT_DEBUG_STRING_EVENT y escribirlos en algún lugar

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top