2010-02-04 12 views
25

Posso dire a GDB di tornare immediatamente da una funzione con return e chiamare una funzione con call myFunction.Come faccio a far uscire GDB da un loop?

Ma come faccio a uscire dal ciclo corrente? ad esempio, come se si tratta di una dichiarazione break;.

È il jump myfile.c:<linenumber> il modo per farlo?

+0

Si desidera eseguire normalmente il ciclo e interromperlo, oppure modificare l'esecuzione saltando del tutto il ciclo? Chiedere di differenziare da https://stackoverflow.com/questions/14651073/is-there-a-ddb-command-to-finish-a-loop-construct –

risposta

3

faccio questo:
1. fare un elenco di origine.
2. Impostare un punto di interruzione nella riga successiva in cui termina il loop.
3. Continua

+8

Non hai nemmeno bisogno di un vero punto di interruzione. Puoi usare 'until' per dirgli di continuare fino a un certo numero di linea. Questo è un punto di interruzione una tantum. –

+8

Questo non sta uscendo dal ciclo, è in attesa fino alla fine del ciclo (che potrebbe non essere mai). –

+0

http://stackoverflow.com/questions/14651073/is-there-a-ddb-command-to-finish-a-loop-construct/ –

0

Uno dei modi potrebbe essere quello di impostare la condizione del ciclo su falso. Ma questo significherebbe che dovresti aspettare che l'attuale iterazione finisca.

Quindi, per riassumere sarebbero i passi:
1. Impostare un punto di interruzione l'ultima riga del ciclo
2. Continuare
3. quando colpisce punto di interruzione, impostare la variabile condizione del ciclo false.

Tuttavia non funzionerà come dichiarazione di interruzione diretta.

+1

Sì, questo è quello che faccio di solito, ma sono sicuro che non ci deve essere un modo di imitare 'break;' –

8

È possibile utilizzare - fino a quando il loop non termina.

Si dovrebbe dare alla fine del ciclo.

  • Utile se non è necessario eseguire un iterazione di un ciclo.
+0

Se leggo correttamente i documenti (http://www.delorie.com/gnu/docs/gdb/gdb_38.html) è equivalente all'impostazione di un punto di interruzione temporaneo dopo il ciclo - ero cercando di uscire dal giro. –

+0

questo suggerimento è ancora valido, ma non è una risposta alla domanda. Forse la domanda dovrebbe essere estesa per includere una dichiarazione specifica che non vuoi questa funzione? – hochl

Problemi correlati