2009-05-07 5 views
5

Da qualche tempo, quando eseguo il debug di applicazioni Visual C++ e la visualizzazione di qualsiasi variabile CString o char * (o qualsiasi altro tipo di base ascii) in Local, Auto, o Guarda le finestre di debug, i caratteri CR/LF nelle mie variabili non vengono visualizzati affatto.Visual C++ Debug finestra di visualizzazione di CR/LF in Visual Studio 2008

In altre parole, se ho una variabile di stringa impostata su "Questa è una riga \ r \ nQuesta è un'altra riga" nel mio codice, la finestra di debug mostrerà "Questa è una riga Questa è un'altra linea". Quello che vorrei che mostrasse è "Questa è una linea □□ Questa è un'altra linea" in modo che io possa vedere i due caratteri in più in quel testo.

Ciò mi ha causato alcuni errori durante il tentativo di eseguire il debug del codice di analisi delle stringhe. Nota, il visualizzatore di testo spezza correttamente il testo in righe separate, ma non voglio usare il visualizzatore di testo se non è necessario. Inoltre, alcuni miei colleghi sono in grado di vedere i caratteri CR/LF nel modo corretto, ma non possiamo determinare il motivo per cui non vengono mostrati per me.

Molte grazie in anticipo.

+0

Di quale finestra stai parlando? "Finestra di debug" suggerisce la finestra di output di debug (ad es., Dove appare l'output di OutputDebugString), ma dalla descrizione sembra che tu stia parlando delle finestre Watch, Auto e Locals. –

+0

Scusa se il titolo della domanda era confuso. Nella prima frase ho detto "variabile nelle finestre di debug Local, Auto o Watch". – Derek

risposta

3

Questa sembra essere una sorta di difficile da riprodurre bug (io non li sto vedendo in 2k8 sia) secondo this old link:

Se volessimo farlo correttamente avremmo bisogno di emettere le sequenze di escape appropriate per questi personaggi. es. mostra "\ r \ n" nella stringa. Il comportamento di stripping di caratteri speciali storici e verrà risolto in una versione futura. Se stai visualizzando il testo con una nuova riga, puoi visualizzare la stringa come array di caratteri: scrivi "str, 100" per visualizzare una stringa di lunghezza 100 come array. Oppure puoi fare clic sul glifo lente di ingrandimento e visualizzare la stringa in un controllo di modifica multilinea.

Un mese più tardi:

Non possiamo riprodurre questo problema su né VS2003 né VS2005. Questo sembra un problema specifico della macchina.

Quindi, se i tuoi colleghi lo vedono davvero, ci deve essere qualcosa di strano nelle nostre configurazioni.

+0

Bella scoperta. Un altro pensiero che mi è venuto in mente è stata la mia versione del sistema operativo. Io sono l'unico qui in esecuzione Vista x64 (sia al lavoro che a casa, ed entrambi hanno lo stesso problema) mentre tutti gli altri usano XP a 32 bit o Vista. Tuttavia, sembra che la segnalazione di bug sia stata inviata da qualcuno che esegue XP. – Derek

+0

Questo potrebbe essere un bug a 64 bit (anche se VS stesso è solo 32). A casa eseguo VS2k8 su Windows 7 x64 e non vedo nulla, ma al lavoro ho VS2k5 su XP x32 e _do_ vedo i quadrati al posto di \ r \ n. –

+0

Uso VS 2005 su XP 64 e non vedo nulla per \ r o \ n, quindi sembra che sia un problema a 64 bit. Stranamente però - VS stesso è a 32 bit, e sto solo lavorando con codice a 32 bit. – RichieHindle

0

Potrebbe essere il carattere che si sta utilizzando? state tutti usando lo stesso font (preferibilmente predefinito)?

Ho avuto un numero di fastidiosi problemi con persone che lo fanno. Non sono sicuro se questo è il tuo problema, ma è qualcosa da controllare.

+0

Per le impostazioni "[Watch, Local and Auto Tool Windows]" in Strumenti-> Opzioni-> Ambiente-> Caratteri e colori, sto usando il font Tahoma. Credo che siano le impostazioni predefinite e anche i miei colleghi stanno usando questo tipo di carattere. – Derek

0

In risposta alla domanda SQL Server ho trovato, almeno nel 2008, che se si ottengono le 200 righe per la modifica mostrerà i quadrati \ r \ n, se si ottengono le 1000 righe per sola lettura sarà non.