Emacs+GDBで標準入力から受け取るプログラムのデバッグをする際のポイントです。
Unix
EOFの入力
適当なファイルに標準入力の項目を記入し、 run する際にリダイレクトする。
gdb> run < input.txt
Cygwin
EOFの入力
適当なファイルに標準入力の項目を記入する。
main関数にbreakを設定する。
gdb> b main
起動する。
gdb> run
起動直後に止まるので、標準入力を置き換える。
gdb> call dup2(open("input.txt", 0), 0)
継続する
gdb> c
Cygwinのやり方についてはStackOverflowにありました。
http://stackoverflow.com/questions/9031554/gdb-input-redirection-using-cygwin
おまけ
mintty+CygwinだとEOFが入力できないことがあります。Windowsはもともと ^Z が EOF 扱いですが、Cygwinだと ^Z は susp に設定されています。stty で susp を別なキーに割り当てることで、 ^Z で EOF を入力することができます。
> stty susp ^]
※ ^] の入力方法は Ctrl+V を押したのちに Ctrl+] を押します。