2010-04-06 24 views
9

In Visual Studio 2008, è possibile specificare un messaggio da stampare quando viene colpito un punto di interruzione (facendo clic con il pulsante destro del mouse sul punto di interruzione e scegliendo "Quando si colpisce ..."). Quando il programma viene eseguito, questi messaggi vengono visualizzati nella finestra di output. Mi piacerebbe sapere, c'è un modo per reindirizzarli a un file?Come reindirizzare l'output dal debugger di Visual Studio?

Specificare >file.txt come argomento del comando per il programma non funziona: questo reindirizza l'output del programma, ma non quello del debugger.

(FWIW il comportamento desidero raggiungere è quello di ottenere il debugger a volte stampare il valore di una variabile in un file, piuttosto che infarcendo il mio codice con dichiarazioni printf/cout.)

risposta

4

In Windows 2000, XP, Server 2003 e Vista DebugView catturerà:

  • Win32 OutputDebugString
  • modalità kernel DbgPrint
  • Tutte le varianti in modalità kernel di DbgPrint implementate in Windows XP e Server 2003

DebugView consente di filtrare l'output, aggiungere timestamp e accedere al file.

Il problema è che è necessario eseguire senza collegarsi al debugger, in modo che DbgView acquisisca l'output. (Utilizzare Ctrl + F5)

+1

qual è il punto di non utilizzare il debugger se l'uscita è generato dai punti di interruzione? – Karsten

+1

durante il debug delle applicazioni sensibili al tempo e l'atto stesso di mettere in pausa l'applicazione modifica lo stato futuro dell'applicazione. – Carl

+0

non è quello che intendevo. La domanda era come l'output del debugger può essere reindirizzato per registrare il testo che un breakpoint produce in un file.Se il debugger non può essere utilizzato, nessun punto di interruzione produrrebbe un testo. – Karsten

0

non so di un modo di scrivere il contenuto della finestra di output in un file senza scrivere un plug-in VS, ma è possibile evidenziare il testo nella finestra di output e copiarlo negli appunti, quindi incollarlo in un file di testo.

13
  1. Impostare l'opzione reindirizzare tutto il testo finestra di output per la finestra immediata. Lo troviamo in Strumenti →OpzionidebugGenerale (quinta per ultima voce).

  2. aprire la finestra immediata: Ctrl + Alt + I o Debugdi Windowsfinestra immediata

  3. immettere un comando come il seguente nella finestra Immediata:

    > Tools.LogCommandWindowOutput /on C:\mylogfile.txt 
    
  4. di smettere di scrivere al file, digitare il seguente comando nella finestra Immediata:

    > Tools.LogCommandWindowOutput /off 
    
+0

Trucco eccellente! –

+0

Grazie, ma dopo aver incollato il comando '/ on' su Immediate Window, ottengo' L'espressione non può essere valutata mentre è in modalità progettazione. Qualche idea? –

+1

Nella finestra Immediata, i comandi devono essere preceduti da ">" (altrimenti, viene valutato come espressione nel contesto del processo di debug, piuttosto che come comando di Visual Studio) – Ramkumar

Problemi correlati