2010-03-12 7 views
10

Durante molte sessioni di debugging, a volte inondate, che usano DDD, mi imbatto in loop. E continuo a premere per passare oltre, e se ci sono molte iterazioni, ho appena impostato un punto di interruzione subito dopo, e premere "continua". C'è un altro modo per superare i loop?Come saltare i loop passati in ddd (gdb)

+0

Grazie per s/passato/passato/g ... L'inglese non è la mia prima lingua, anche se sto indubbiamente migliorando. – vehomzzz

risposta

15

si desidera che il comando "fino a quando" - vedi il manuale di gdb in http://www.gnu.org/software/gdb/documentation:

continuare a funzionare fino a quando una linea di fonte oltre la linea di corrente, nella cornice stack corrente, è raggiunto. Questo comando viene utilizzato per evitare lo stepping singolo attraverso un loop più di una volta. È come il comando successivo, eccetto quello quando fino a incontrare un salto, esso automaticamente continua l'esecuzione finché il contatore del programma è maggiore dell'indirizzo del salto.

Ciò significa che quando si arriva alla fine di un ciclo dopo singolo passo però esso, fino a quando fa il vostro programma di continuare esecuzione fino a quando non esce dal ciclo. Nel contrasto , un comando successivo alla fine di un ciclo fa semplicemente un passo indietro al inizio del ciclo, che costringe a passare attraverso la successiva iterazione .

3

In genere utilizzo "continua fino a qui" che imposta un punto di interruzione temporaneo in quella posizione e continua immediatamente l'esecuzione. Vi si accede tramite il pulsante del mouse 3 che apre un menu a comparsa.