2012-10-27 13 views
24

私はプログラムを持っており、gdbを使ってデバッグしようとしています。プログラムの中には、ユーザーが標準入力を使って入力を要求するメソッドがあります。私がgdbに入っているときに、この入力をどのように入力するのですか?私の方法がどのように機能するかを追跡することができますか?GDBでstdinからユーザー入力を受け取るプログラムをデバッグする方法は?

+0

もっと簡単な直接入力の場合は、これは次のようになります。http://stackoverflow.com/questions/455544ただし、これには該当しないケースがあります。1)stdoutを決定するためにstdoutを参照する必要がある2)実際のタイミングとキー押下はncursesのように必要です。そのような場合は、おそらくそれを期待するかもしれません:http://stackoverflow.com/questions/5579901/automated-test-tools-for-linux-ncurses –

答えて

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

私はちょうど昨日、このような何かを経て、私はインターネット上で必要な正確に何を見つけることができなかったので、GDBの「ヘルプ」コマンドの束を通じて再帰。

私はgdbを起動してコードを実行した後にset variable *your_variable* = *your desired input*を使用しました。魅力のように働いた。

私はこれが遅いと知っていますが、多分それは他の人を助けるでしょう。

+1

これをstdinにどうやって使用しますか? – Aralox

関連する問題