2012-10-27 11 views
24

Bir program var ve ben gdb kullanarak hata ayıklama çalışıyorum. Programın içinde kullanıcının stdin kullanarak bir girdi girmesini gerektiren yöntemlerim var. Gdb'deyken bu girişi nasıl girebilirim? Böylece yöntemlerimin nasıl çalıştığını izleyebilir miyim?Kullanıcı girişini GDD ile stdin'den alan bir programda nasıl hata ayıklanır?

+0

, soru bu aynıdır: http://stackoverflow.com/questions/455544 bu kapsamaz ancak durum vardır: 1) Eğer Stdin karar stdout'u görmek gerek 2) fiili zamanlama ve tuşa basma, ncurses'da olduğu gibi gereklidir. Bu gibi durumlarda, belki bunu yapabilir bekliyoruz: http://stackoverflow.com/questions/5579901/automated-test-tools-for-linux-ncurses –

cevap

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

Sadece bu dün gibi bir şey geçti ve ben internette gerekli tam olarak ne bulamadığı için gdb komutları "yardım" bir demet aracılığıyla recursed.

ben gdb başladıktan sonra set variable *your_variable* = *your desired input* kullanılan ve kodumu yayınlanmaya başladı. Bir çekicilik gibi çalıştı.

ben bu geç olduğunu biliyorum ama belki başkası yardımcı olacağız. doğrudan girişleri daha basit durum için

+1

Bunu nasıl olsa Stdin için kullanırdınız? – Aralox