Ho un programma e sto cercando di eseguire il debug usando gdb. All'interno del programma ho metodi che richiedono all'utente di inserire un input usando stdin. Come posso inserire questo input quando sono in gdb? In modo che io possa tracciare come funzionano i miei metodi?Come eseguire il debug di un programma che richiede l'input dell'utente da stdin con GDB?
24
A
risposta
21
$ cat >foo <<EOF
something
EOF
$ gdb -quiet /bin/cat
Reading symbols from /bin/cat...(no debugging symbols found)...done.
Missing separate debuginfos, use: debuginfo-install coreutils-8.12-7.fc16.x86_64
(gdb) run <foo
Starting program: /bin/cat <foo
something
[Inferior 1 (process 22436) exited normally]
(gdb)
1
Ho appena passato attraverso qualcosa di simile ieri e ricorsivo attraverso un mazzo di "aiuto" comandi in gdb, perché non riuscivo a trovare esattamente quello che mi serviva su Internet.
Ho utilizzato set variable *your_variable* = *your desired input*
dopo aver avviato gdb e ho iniziato a eseguire il mio codice. Ha funzionato come un fascino.
So che è tardi, ma forse aiuterà qualcun altro.
+1
Come utilizzeresti questo per stdin, però? – Aralox
Problemi correlati
- 1. Come eseguire il debug di CLI Python che richiede stdin?
- 2. problemi con gdb stdin reindirizzamento
- 3. Come eseguire il debug di un programma compilato con 'make'?
- 4. Programma debug basato su C con gdb
- 5. Come eseguire il debug usando gdb?
- 6. Eseguire il debug di un programma che richiede i diritti di amministratore in Windows 7
- 7. messaggio gdb strano quando il debug programma
- 8. gdb - il debug con l'ingresso in filodiffusione (non argomenti)
- 9. Su Linux, debug di un'applicazione C++ con gdb in Eclipse CDT, come inserire qualcosa nello stdin?
- 10. di debug ++ modello con gdb
- 11. Debug qemu con gdb
- 12. Debug di un llvm con gdb
- 13. Come eseguire gdb con LD_PRELOAD?
- 14. GDB stack frame danneggiato - Come eseguire il debug?
- 15. gdb: uscita programma senza uscire gdb
- 16. Come si esegue il debug di un programma eseguito da un altro utente?
- 17. Come si usa il debugger gdb MinGW per eseguire il debug di un programma C++ in Windows?
- 18. Come abilitare il debug inverso su un programma multi-thread?
- 19. Come eseguire il debug di un programma racchiuso in uno script libtool?
- 20. Come usi gdb per eseguire il debug del tuo codice?
- 21. gdb: Programma terminato con il codice 030000000375
- 22. gdb - il debugging con tubo
- 23. Debug di bootloader con gdb in qemu
- 24. Docker: esegue un programma che richiede tty
- 25. Come eseguire il debug di un deadlock?
- 26. Debug delle librerie smontate con gdb
- 27. Come eseguire il debug di un errore di segmentazione Python?
- 28. Come si esegue il debug di uno script che utilizza stdin con ipython?
- 29. Debug di codice utente su xv6 con gdb
- 30. Come si avvia un programma con argomenti durante il debug?
Per il caso più semplice di immissione diretta, la domanda è la stessa: http://stackoverflow.com/questions/455544 Ci sono tuttavia casi che questo non copre: 1) è necessario vedere lo stdout per decidere lo stdin 2) i tempi effettivi e le pressioni dei tasti sono necessari come in ncurses. In questi casi, forse aspettati potrebbe farlo: http://stackoverflow.com/questions/5579901/automated-test-tools-for-linux-ncurses –