Stream 用GDB模拟回波输入

Stream 用GDB模拟回波输入,stream,terminal,gdb,stdin,Stream,Terminal,Gdb,Stdin,因此,我尝试调试一个程序,该程序要求用户通过终端输入一些文本: $ echo 'here is the text' | ./program 如何在GDB中模拟该输入?您可以使用--args选项,给出程序可执行文件,后跟如下参数 % gdb --args ./program arg1 arg2 您可以使用--args选项指定程序可执行文件,后跟如下参数 % gdb --args ./program arg1 arg2 您可以在输入重定向的情况下运行程序: echo 'here is

因此,我尝试调试一个程序,该程序要求用户通过终端输入一些文本:

$ echo 'here is the text' | ./program
如何在GDB中模拟该输入?

您可以使用
--args
选项,给出程序可执行文件,后跟如下参数

 % gdb --args ./program arg1 arg2 
您可以使用
--args
选项指定程序可执行文件,后跟如下参数

 % gdb --args ./program arg1 arg2 

您可以在输入重定向的情况下运行程序:

echo 'here is the text' > intput.txt
gdb ./program
(gdb) run < intput.txt
echo'这里是文本'>intput.txt
gdb/程序
(gdb)运行
您可以在输入重定向的情况下运行程序:

echo 'here is the text' > intput.txt
gdb ./program
(gdb) run < intput.txt
echo'这里是文本'>intput.txt
gdb/程序
(gdb)运行
所以我将--args替换为“此处是文本”?或者文本在哪里?@Foxxy-参数应该放在程序后面,即arg1,如果多个参数后跟。但我这里不是指参数,而是指STDIN。因此提示符的“hereisthetext”部分。所以我将--args替换为“hereisthetext”?或者文本在哪里?@Foxxy-参数应该放在程序后面,即arg1,如果多个参数后跟。但我这里不是指参数,而是指STDIN。因此提示中的“此处是文本”部分。谢谢,我认为这可能是解决方案。谢谢,谢谢,我想那可能是解决办法。谢谢。可能的副本可能的副本