2015-05-13 20 views
8

Sto avendo problema ispezionare cose specifiche nel mio Debug.WriteLn uscita in Visual Studio 2015 (stessa cosa in versione 2012 e il 2013 anche.)Come filtrare l'output in Visual Studio 2012+?

XCode ed Eclipse entrambi includono un filtro-box sulla parte superiore della finestra Output. Ho provato a trovare un'estensione simile per Visual Studio ma non ho avuto fortuna. C'è un modo per avere una funzionalità simile e filtrare la finestra di output?

+0

se si tratta di rimuovere un po 'di confusione dall'output: vedere anche [Visual Studio - Filtra eccezioni dall'output di debug] (http://stackoverflow.com/questions/400731/visual-studio-filter-exceptions-from-debug- uscita) – user829755

risposta

4

Vari servizi in VS scrivono nella finestra di output in modo che sia presente un filtro integrato basato sulla sorgente. Spesso è possibile selezionare la fonte come "Build Output", "Test discovery", "General", "Debug" ecc.

Debug.Le chiamate in scrittura sono intercettate da VS e il testo finisce nella finestra Output ma lì non è un filtro incorporato.

posso pensare di 3 modi per aggirare questo:

  1. Usa DbgView di intercettare i messaggi Debug.Write invece di lasciare VS intercettarli. DbgView ha molto potenti funzionalità di filtro e coloranti *
  2. provare this extension che colora l'uscita in base a espressioni regolari
  3. Scrivi la tua estensione (non è poi così difficile!)

(*) Se si va su questa nota che Debug.Write è solo una traccia e quando si allega il debugger VS si aggiungerà come listatore di traccia. Lo stesso per DbgView. Ma quando lo scolleghi non rimuoverà l'ascoltatore e i messaggi andranno persi.

+0

Grazie per il vostro tempo e risposta! Ho provato DbgView (con i privilegi di amministratore) ma non stampa nulla relativo alla mia app. (Ho avviato e arrestato il debugger ma non ha funzionato). L'estensione colorazione è utile ma non abbastanza per me in quanto riempie ancora la finestra di output. È strano che nessuno avesse bisogno di questa funzione. Proverò a vedere se riesco a scrivere rapidamente un'estensione (anche se non so ancora come): -/ – frankish

+1

Prova ad eseguire l'app senza il debugger (o senza VS) e poi avvia dbgview. –

+0

Ho mantenuto VS aperto ma arrestato il debugger, DbgView ha funzionato correttamente e sono in grado di filtrarlo per effettuare test. Grazie mille. (Ma ancora una volta, spero che un giorno VS includa questa funzione di filtro, quindi posso usare il debugger di VS in modo dinamico) – frankish

21

Io uso questo metodo:

aperta Debug - finestra di output, semplicemente fare clic destro sulla finestra.

enter image description here

È possibile controllare/deselezionare secondo il vostro bisogno.

+1

Grazie! Questo è molto utile. – Winks

2

Una cosa che ho appena trovato in VS 2017 (e penso che sia in altre versioni troppo) è:

Tools | Options | Debugging | General > Redirect all Output Window text to the Immediate Window

questo ti dà solo il programma di uscita Debug.WriteX nella finestra immediata e se ne va tutto l'altro cestino nella finestra di output, che puoi lasciare chiuso.

Posso ancora andare a guardare il cestino nella finestra di output se ne ho bisogno per qualche motivo; non è soppresso. Semplicemente non lo fa nella finestra immediata.

E ho appena lasciato la piccola finestra immediata ancorata in fondo.

Penso che sia un bene perché con tutta la spazzatura in uscita nella finestra di output, non stavo davvero prestando più attenzione all'output di quanto vorrei un accordo sui termini di utilizzo (ovvero, quasi nessuno) , quindi il bambino veniva espulso con l'acqua del bagno. Ma ora in realtà sono vedi un po 'di debug di output del programma che, a quanto pare, richiede attenzione.

IMHO Microsoft dovrebbe espandere la finestra a discesa della finestra di output per includere tutte le categorie indicate da FetFrumos nella sua risposta, in modo che gli sviluppatori possano semplicemente lasciarlo impostato su "Uscita programma". Penso che questo sarebbe un buon miglioramento.