Mam program i próbuję debugować go przy użyciu gdb. Wewnątrz programu mam metody, które wymagają od użytkownika wprowadzenia danych wejściowych za pomocą stdin. Jak mogę wprowadzić to wejście, gdy jestem w gdb? Czy mogę prześledzić, jak działają moje metody?Jak debugować program, który pobiera dane wejściowe użytkownika ze standardowego wejścia z GDB?
24
A
Odpowiedz
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
Właśnie przeszedł przez coś takiego wczoraj i recursed przez kilka „pomocy” polecenia w gdb, bo nie mogłem znaleźć dokładnie to, co potrzebne w Internecie.
Użyłem set variable *your_variable* = *your desired input*
po uruchomieniu gdb i uruchomieniu mojego kodu. Pracował jak urok.
Wiem, że jest późno, ale może pomoże to komuś innemu.
+1
Jak byś tego użył na stdin? – Aralox
Powiązane problemy
- 1. coraz wejściowe ze standardowego wejścia
- 2. Biorąc wejściowe ze standardowego wejścia po freopen()
- 3. Jak czytać ze standardowego wejścia z fgetami()?
- 4. Jak odczytać pojedynczy ciąg ze standardowego wejścia?
- 5. Mniej pobiera dane z klawiatury ze stderr?
- 6. Odczytanie liczby całkowitej ze standardowego wejścia
- 7. Jaki jest najlepszy sposób sprawdzenia, czy program Python ma cokolwiek do odczytania ze standardowego wejścia?
- 8. przesyłanie wielu plików ze skryptu powłoki za pomocą standardowego wejścia
- 9. Czy mogę czytać ze standardowego wejścia w sposób niekanoniczny?
- 10. gdb - debugowanie z rurą
- 11. Jak mogę debugować program uruchamiany przez innego użytkownika?
- 12. Pytaj o dane wejściowe użytkownika za pomocą pythona instancja asyncio.create_server
- 13. Jak pobrać sed z poziomu standardowego wejścia?
- 14. Jak przycinać linie odczytu ze standardowego wejścia na bash?
- 15. Jak odczytać ze standardowego wejścia wiersz po linii?
- 16. C: Odczytaj ze standardowego wejścia, aż do dwukrotnego naciśnięcia Enter.
- 17. Konwertuj dane wejściowe użytkownika na liczbę całkowitą
- 18. Jak debugować Pythona CLI, który przyjmuje stdin?
- 19. Wyłącz wszystkie dane wejściowe, gdy program UIActivityIndicatorView jest odwracany.
- 20. Jak szybko sformatować dane wejściowe ze strumienia w C++?
- 21. Python: Jak zmienić tekst widgetu wiadomości na dane wejściowe użytkownika
- 22. Mieć odczyt Rscript lub wziąć dane wejściowe ze stdin
- 23. Gdzie `getchar()` przechowuje dane wejściowe użytkownika?
- 24. Jak mogę debugować skrypt, który używa stdin z ipython?
- 25. Niezablokowanie odczytu ze standardowego wejścia/wyjścia w języku C#
- 26. Jak debugować program zawinięty w skrypcie libtool?
- 27. Który program użytkownika HTTP obsługuje mój program iOS?
- 28. C - dane wejściowe dla pojedynczego char użytkownika wyświetlają dziwne wyniki.
- 29. Dane wejściowe z poziomu skryptu powłoki
- 30. Java: Jak uzyskać dane wejściowe z System.console()
Dla prostszego przypadku bezpośredniego wprowadzania, pytanie jest takie samo: http://stackoverflow.com/questions/455544 Istnieją jednak przypadki, które nie obejmują: 1) musisz zobaczyć stdout, aby zdecydować stdin 2) potrzebne są aktualne taktowanie i naciśnięcia klawiszy, jak w ncurses. W takich przypadkach może oczekiwać: http://stackoverflow.com/questions/5579901/automated-test-tools-for-linux-ncurses –