2010-11-22 10 views
5

Tengo una aplicación de consola que se bloquea con un error de E/S 6 cuando la salida se redirige a un archivo. Probablemente tiene algo que ver con el hecho de que la aplicación de la consola cambia el color del texto, lo que no tiene mucho sentido en un archivo.Cómo depurar una aplicación Delphi con salida redirigida

  • Esto funciona: c:\dir\app.exe
  • Este accidentes: c:\dir\app.exe >out.txt

Cuando yo proporciono >out.txt como un parámetro en el IDE (run\parameters\parameters\), apenas consigo >out.txt como parámetro.

¿Cómo puedo depurar la aplicación con el stdout redirigido a un archivo en lugar de la consola?

Respuesta

12

redirección es hecha por el intérprete de línea de comandos, en las ventanas es cmd.exe

Para depurar la aplicación, simplemente inicie un cmd.exe con argumentos propers para iniciar su aplicación y redireccionar el resultado, por ejemplo:

cmd.exe/c "yourapplication.exe> ​​redirect.txt"

para que esto suceda desde el interior del IDE con el fin de depurar, configurar cmd.exe como el programa de control (Run/Parámetros):

Run/Parameters dialog

Ponga un punto de interrupción en la que desea detener y lanzamiento un nuevo cmd.exe (Proyecto/proceso de carga) con "Run to primera fuente" después de la acción de carga:

Load process dialog

Y ya está ... el depurador debe detener la aplicación a su punto de ruptura.

2

Usted podría tratar de depuración remota:

  • al inicio de la aplicación, añadir un ReadLn; que le da tiempo para asociar al proceso desde dentro Delphi

  • inicie la aplicación de un comando línea (especificando el parámetro> out.txt)

  • en Delphi, conéctese con el proceso de aplicación (Run | Attach to Process...), establezca un punto de interrupción y luego cambie a la aplicación para ingresar una clave

pistas: un punto de interrupción de depuración también se puede ajustar en código:

asm 
    int 3 
end; 
0

Asegúrese de que no esté fallando debido a los permisos del directorio. Califique por completo la ruta del archivo de salida a alguna parte que pueda garantizar que pueda escribir. De lo contrario, Windows 7 puede estar jugando juegos con el directorio. (Cosas de VirtualStore).

Cuestiones relacionadas