2010-11-22 19 views
5

Ho un'applicazione console che si arresta in modo anomalo con un errore I/O 6 quando l'output viene reindirizzato a un file. Probabilmente ha qualcosa a che fare con il fatto che l'applicazione console cambia il colore del testo, il che non ha molto senso in un file.Come eseguire il debug di un'applicazione Delphi con output reindirizzato

  • Questo funziona: c:\dir\app.exe
  • Questo crash: c:\dir\app.exe >out.txt

Quando fornisco >out.txt come parametro nell'IDE (run\parameters\parameters\), ottengo solo >out.txt come parametro.

Come è possibile eseguire il debug dell'applicazione con lo stdout reindirizzato su un file anziché sulla console?

risposta

12

reindirizzamento è fatta da riga di comando dell'interprete, in finestre è cmd.exe

Per eseguire il debug l'applicazione, è sufficiente avviare un cmd.exe con argomenti propers per avviare l'applicazione e reindirizzare l'output, ad esempio:

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

per rendere questo accada dall'interno IDE, al fine di eseguire il debug, configurare cmd.exe come l'applicazione host (Esegui/Parametri):

Run/Parameters dialog

Mettere un punto di interruzione in cui si vuole fermare, e il lancio un nuovo cmd.exe (progetto/processo di carico) con "Corri in prima fonte" dopo l'azione del carico:

Load process dialog

E il gioco è fatto ... il debugger deve interrompere l'applicazione al vostro punto di interruzione.

2

Si potrebbe provare il debug remoto:

  • all'inizio dell'applicazione, aggiungere un ReadLn; che ti dà il tempo di connettersi al processo dall'interno di Delfi

  • avviare l'applicazione da un comando linea (specificando il parametro> out.txt)

  • in Delphi, connettersi con la procedura dell'app (Run | Attach to Process...), impostare un punto di interruzione e quindi passare all'applicazione per accedere una chiave

Suggerimento: un punto di interruzione debugger può essere impostato anche nel codice:

asm 
    int 3 
end; 
0

Verificare che non si sia verificato un errore a causa delle autorizzazioni della directory. Completamente qualificare il percorso del file di output in un posto che si è in grado di scrivere. Altrimenti, Windows7 potrebbe giocare con la directory. (Materiale di VirtualStore).

Problemi correlati