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?
24
A
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 sonraset 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
, 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 –