2009-06-24 11 views
18

Sto provando a guardare una variabile con Xcode. Sto seguendo le istruzioni in here facendo una pausa in un punto di interruzione, selezionando Esegui> Vista variabili> .... ma con l'eccezione di "Abilita formattazione dati", il resto delle opzioni sono tutte in grigio. Qualche idea?Visualizzazione di variabili in Xcode

Sto usando Xcode versione 3.1.3.

+1

una volta che si preme un punto di interruzione, si dovrebbe essere in grado di passare il mouse su un punto di interruzione e mostrerà le informazioni sulle variabili. – zpesk

+0

Sei sicuro di aver eseguito una build di debug con l'ottimizzazione disattivata? – Dolphin

+0

Ho provato una build di debug invece di rilascio ma il problema persiste. – Stu

risposta

19

Purtroppo non ho ottenuto punti di controllo creati dal menu Esegui per funzionare anche per me. Una cosa da tenere presente è che quando una variabile esce dall'ambito, il punto di controllo può diventare non valido.

Se non vi dispiace fare un po 'più in profondità, è possibile utilizzare alcuni comandi di livello basso gdb per impostare un punto di controllo per l'indirizzo della memoria stessa. Ad esempio, nella guida a cui sei collegato, mostrano come guardare la variabile path che è un puntatore con il valore 0xbfffeb70. Per impostare manualmente un watchpoint per quell'indirizzo, fare clic nella console debugger (dove viene stampato l'output di debugging) dopo il "(gdb)" pronta e digitare qualcosa di simile:

watch *((int*)0xbfffeb70) 

La sintassi criptica è necessaria in quanto gdb si aspetta input come espressioni C. Per ulteriori dettagli, visit this link e passare alla sezione "Uso dei watchpoint hardware". (Sto testando su una macchina Intel, non sono sicuro di come PowerPC lo gestisca.) Quando imposti i watchpoint in questo modo, Xcode ti avviserà con un foglio a discesa quando viene raggiunto un punto di controllo e ti dirà come è stato modificato il valore, e gdb stamperà le stesse informazioni nella console.

+2

Se si desidera vedere un membro di un metodo C++, ho trovato questa variante estremamente utile: 'watch -location mTextFormatted'. Rivelato un brutto bug relativo al cast statico vs dinamico;) –

+2

L'alternativa lldb sarebbe 'watchpoint set expression - 0xbfffeb70' o' w s e-0xbfffeb70' in breve. –

7

Mi sono appena imbattuto in questo problema. Ecco una soluzione: fare clic con il tasto destro del mouse sul nome della variabile e selezionare "Visualizza la variabile nella finestra" dal menu che appare. Dovrebbe essere vicino al fondo.

2

Le risposte fornite qui funzionano solo se si utilizza il compilatore gdb. Per quelli di voi che stanno cercando un'opzione per impostare un watchpoint con il compilatore lldb ho brutte notizie:

Non funziona jet (XCode 4.3.2 con lldb 3.1) anche se i documenti lldb dicono che si può.

Check out this Email. I comandi lldb rispetto alle gdb s possono essere trovati here

+0

'wa s e - ' ha funzionato per me, ad es. 'Wa s e - 0xbfffeb70' –

1

Cercavo di capire questo in XCode 5. Infine ho trovato un pulsante "Variabili view" in basso a destra della console uscita. È il piccolo rettangolo che sarà grigio a sinistra, bianco a destra se non è abilitato. Non sono sicuro se questo è in XCode 3, ma mi aspetto che la maggior parte delle persone si sia comunque aggiornata.

2

Aggiungere un punto di interruzione. Tasto destro del mouse nella lista di sorveglianza della zona di debug e scegliere "Aggiungi espressione ..."

enter image description here

Se hai trovato un menu diverso, è necessario fare clic fuori della variabile attualmente evidenziato in modo che nulla è evidenziato quando fai clic destro.

Problemi correlati