gdb - 使用管道输入(不是参数)进行调试

时间:2011-12-07 20:43:08

标签: gdb pipe

我通常用以下方式运行我的程序:

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的所有字符,我无法输入。

1 个答案:

答案 0 :(得分:91)

gdb ./vuln_prog
run < filename_with_input