web-dev-qa-db-ja.com

gdb-パイプ入力を使用したデバッグ(引数ではない)

私は通常、次のプログラムを実行します。

_Perl -e 'print "A"x200' | ./vuln_prog
_

Stdinは、C++のgets()関数によって消費されます。

これが単なるコマンド引数である場合、次のようにしてgdbを開くことができます。

_gdb ./vuln_prog
run $(Perl -e 'print "A"x200')
_

ただし、私のシナリオはコマンド引数ではなく、入力(STDIN?)です。これをgdbでどのようにデバッグしますか?たくさんのオプションを試しましたが、実際に機能するものはありません。

通常、プロセスでgdbを実行し、ユーザー入力のプロンプトが表示されたら入力しますが、「A」だけを入力したくありません。入力できない\ x00-\xffのすべての文字を入力したい。

67
mandreko
gdb ./vuln_prog
run < filename_with_input
90
zed_0xff