2010-04-06 19 views
9

En Visual Studio 2008, puedo especificar que se imprima un mensaje cuando se golpea un punto de interrupción (haciendo clic con el botón derecho en el punto de interrupción y seleccionando "Cuando aparezca ..."). Cuando se ejecuta el programa, estos mensajes aparecen en la Ventana de salida. Me gustaría saber si hay alguna forma de redirigirlos a un archivo.¿Cómo redirecciono el resultado del depurador de Visual Studio?

Especificando >file.txt como un argumento de comando para el programa no funciona: esto redirige la salida del programa, pero no del depurador.

(Fwiw el comportamiento que se desea lograr es conseguir el depurador para imprimir varias veces el valor de una variable en un archivo, en lugar de salpicando mi código con declaraciones printf/cout.)

Respuesta

4

En Windows 2000, XP, Server 2003 y Vista DebugView capturará:

  • Win32 OutputDebugString
  • modo de núcleo DbgPrint
  • Todas las variantes de modo kernel de DbgPrint implementados en Windows XP y Server 2003

DebugView le permite filtrar la salida, agregar marcas de tiempo y registrar en el archivo.

El problema es que necesita ejecutar sin conectar al depurador, para que DbgView capture la salida. (Use Ctrl + F5)

+1

cuál es el punto en no utilizar el depurador si la salida es generada por los puntos de ruptura? – Karsten

+1

cuando depura aplicaciones sensibles al tiempo y el solo hecho de pausar la aplicación cambia el estado futuro de la aplicación. – Carl

+0

eso no es lo que quise decir. La pregunta era cómo se puede redirigir la salida del depurador para registrar el texto que un punto de interrupción produce en un archivo.Si el depurador no se puede usar, ningún punto de interrupción generará texto. – Karsten

0

No sé de una forma de escribir los contenidos de la ventana de salida en un archivo que no sea escribir un complemento VS, pero puede resaltar el texto en la ventana de salida y copiarlo en el portapapeles, y luego pegarlo en un archivo de texto.

13
  1. Establecer la opción Redirigir todo el texto de la ventana de salida a la ventana Inmediato. La encontramos en Herramientas → Opciones Depuración → general (quinto de último elemento).

  2. abrir la ventana Inmediato: Ctrl + Alt + I o depuraciónde Windowsventana Inmediato

  3. introduzca un comando como el siguiente en la ventana Inmediato:

    > Tools.LogCommandWindowOutput /on C:\mylogfile.txt 
    
  4. dejar de escribir en el fichero, introduzca el siguiente comando en la ventana Inmediato:

    > Tools.LogCommandWindowOutput /off 
    
+0

Excelente truco! –

+0

Gracias, pero después de pegar el comando '/ on' a la ventana Inmediato, obtengo' La expresión no puede evaluarse mientras está en modo de diseño. ¿Alguna idea? –

+1

En la ventana Inmediato, los comandos deben tener el prefijo ">" (de lo contrario, se evalúa como una expresión en el contexto del proceso depurado, en lugar de un comando de Visual Studio) – Ramkumar

Cuestiones relacionadas