2012-07-06 13 views
15

Io uso gdb per eseguire il debug del mio codice cpp. ho impostato i punti di interruzione in questo modo:Come confermare l'azione (risposta "Y") nello script gdb?

(gdb) break ParseDriver.cc:60 
No source file named ParseDriver.cc. 
Make breakpoint pending on future shared library load? (y or [n]) y 
Breakpoint 1 (ParseDriver.cc:60) pending. 

Per semplificare l'impostazione i punti di interruzione, ho scritto un semplice script gdb (chiamato breakpoints.gdb), contiene semplicemente una sola linea:

break ParseDriver.cc:60 

I Fonte questo script nel terminale gdb, ma non è riuscito.

(gdb) source ~/breakpoints.gdb 
No source file named ParseDriver.cc. 
Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal] 

Sembra che sia necessario rispondere a Y nello script per impostare il punto di interruzione.

Quindi, come posso rispondere a Y nello script gdb? Grazie in anticipo.

+0

possibile duplicato di [gdb: come impostare i punti di interruzione su future librerie condivise con un flag --command] (http://stackoverflow.com/questions/100444/gdb-how-to-set-breakpoints-on-future -shared-libraries-with-a-command-flag) – TooTone

risposta

32
(gdb) set breakpoint pending on 

Questo renderà gdb saltare richiede la conferma, citazione da the docs:

Questo indica che una posizione punto di interruzione non riconosciuta deve tradurrà automaticamente in un punto di interruzione in attesa in fase di creazione.

1

È possibile eseguire il comando con set confirm off/on e GDB non chiede conferma.

+0

Non ha funzionato per me. gdb non è stato in grado di creare punti di interruzione, ma non ha richiesto la conferma. –